javascript循环遍历本地存储以查找元素

时间:2012-03-18 13:12:39

标签: javascript local-storage

我正在广泛使用本地存储,这很好,因为它通过在客户端上存储会话来帮助维护状态。但问题是更新会话时。

我有几个我在json中序列化的对象列表,并且我放入了会话。对象具有多个属性,包括ID和日期。在另一点上,我需要循环遍历这些列表,以查明其中一个列表是否包含我正在通过ID查找的对象之一。

我用来存储json的密钥包含一个日期;像这样:

var TheData = JSON.stringify(TheListOfMyObjects);
var SessionKey = 'TheListOfObjectsFor' + TheMonth + "." + TheDay + "." + TheYear;
localStorage.setItem(SessionKey, TheData);

现在我需要检查会话中是否有一个具有特定ID的对象。我不知道对象的日期属性,只知道它的ID。我也不知道哪个日期在会话中有价值。

我如何通过ID找到我的对象?如果我可以在内存中加载会话以便我可以遍历它,那就太好了。

1 个答案:

答案 0 :(得分:3)

如果ID在对象内,则需要提取每个localStorage对象,并比较这些字段。

var obj1 = {ID  : "a",  field: 543}
var obj2 = {ID  : "b",  field: 161}
var obj3 = {ID  : "c",  field: 425}


localStorage.setItem("item1", JSON.stringify(obj1));
localStorage.setItem("item2", JSON.stringify(obj2));
localStorage.setItem("item3", JSON.stringify(obj3));


var ID_Needed = "b";

for(var i = 0; i < localStorage.length; i++) {

    var obj = JSON.parse(localStorage.getItem(localStorage.key(i)));

    if(obj.ID == ID_Needed) {
        console.log(obj);
        break;
    }
}