javascript – 如何在不事先知道密钥的情况下检索所有localStorage项目?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在不事先知道密钥的情况下检索所有localStorage项目?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1764字,纯文字阅读大概需要3分钟。
内容图文
我想显示之前写的所有密钥和存储.
我的代码如下.我创建了一个函数(allStorage),但它不起作用.
我怎样才能做到这一点?
function storeUserScribble(id) {
var scribble = document.getElementById('scribble').innerHTML;
localStorage.setItem('userScribble',scribble);
}
function getUserScribble() {
if ( localStorage.getItem('userScribble')) {
var scribble = localStorage.getItem('userScribble');
}
else {
var scribble = 'You can scribble directly on this sticky... and I will also remember your message the next time you visit my blog!';
}
document.getElementById('scribble').innerHTML = scribble;
}
function clearLocal() {
localStorage.clear();
return false;
}
function allStorage() {
var archive = [];
for (var i = 0; i<localStorage.length; i++) {
archive[i] = localStorage.getItem(localStorage.key(i));
}
}
解决方法:
如果您将功能修改为此功能,则可以根据键列出所有项目(仅列出项目):
function allStorage() {
var values = [],
keys = Object.keys(localStorage),
i = keys.length;
while ( i-- ) {
values.push( localStorage.getItem(keys[i]) );
}
return values;
}
Object.keys是JavaScript的新成员(ECMAScript 5).它列出了一个对象上的所有键,这比使用for-in循环更快,这是一个选项.
但是,这不会显示键.为此你需要返回一个对象而不是一个数组(这是一个相当无点的IMO,因为这将带来你以前使用localStorage只是使用不同的对象 – 但是例如,为了这个原因):
function allStorage() {
var archive = {}, // Notice change here
keys = Object.keys(localStorage),
i = keys.length;
while ( i-- ) {
archive[ keys[i] ] = localStorage.getItem( keys[i] );
}
return archive;
}
如果你想要一个紧凑的格式列表,那么这样做 – 这里数组中的每个项目都有key = item,你以后可以将它们拆分成对,等等:
function allStorage() {
var archive = [],
keys = Object.keys(localStorage),
i = 0, key;
for (; key = keys[i]; i++) {
archive.push( key + '=' + localStorage.getItem(key));
}
return archive;
}
内容总结
以上是互联网集市为您收集整理的javascript – 如何在不事先知道密钥的情况下检索所有localStorage项目?全部内容,希望文章能够帮你解决javascript – 如何在不事先知道密钥的情况下检索所有localStorage项目?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。