我需要在我的应用的本地存储中存储大量数据。我成功地存储了它。现在我需要获取数组中的数据,但是需要获取所选键/值,而不是全部或只有1个。我将这些键命名为“section”+ id,如下所示,需要在数组中选择这些。
答案 0 :(得分:4)
localStorage.getItem(key)
将返回您提供的密钥的数据。来自localStorage的数据是序列化的,因此您需要使用JSON.parse(data)
将其解析为普通的JS对象,然后您可以将其作为任何其他对象使用。
您只能使用localStorage.getItem
获得单个项目,因此如果您想要在数组中获取多个项目,则必须循环并逐个获取每个项目并将它们放入数组中。
也许是这样的:
var keys = Object.keys(localStorage).filter(function(key) {
return /^section\d+$/.test(key);
});
var dataArray = keys.map(function(key) {
return JSON.parse(localStorage.getItem(key));
});
首先,我们得到所有"部分###"具有filter
功能的键。然后我们使用map
函数创建一个包含每个相应项的数据的新数组。
答案 1 :(得分:1)
试试这段代码。我编辑了它。
var keys = [];
var data = [];
for (var key in localStorage) {
if (key.indexOf("section") > -1)
keys.push(key);
}
for (var i in keys) {
data.push(localStorage.getItem(keys[i]))
}