我可以使用什么查询从所选键值的本地存储中获取数据

时间:2017-05-14 12:57:47

标签: javascript jquery arrays json local-storage

我需要在我的应用的本地存储中存储大量数据。我成功地存储了它。现在我需要获取数组中的数据,但是需要获取所选键/值,而不是全部或只有1个。我将这些键命名为“section”+ id,如下所示,需要在数组中选择这些。 enter image description here

2 个答案:

答案 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]))
}