【问题标题】:LocalStorage json array saving -> Prevent duplicatesLocalStorage json 数组保存 -> 防止重复
【发布时间】:2014-04-11 05:16:54
【问题描述】:

我只是编写了一个小sn-p来玩一下localStorage,很简单,你可以将项目添加到json数组中,所有这些项目都会保存在localStorage键"saved"

但是,我无法防止我的 json 数组中出现重复条目​​,而是应该触发警报。

$("#add").on("click", function(e){
    var items = localStorage.getItem('saved');
    var newitem = $('#theitem').val();

    if (items != null){
        var allitems = JSON.parse(localStorage["saved"]);
        allitems.push({"myitem":newitem});
        localStorage.setItem('saved', JSON.stringify(allitems));
    }else{
        var allitems = [{"myitem":newitem}];
        localStorage.setItem('saved', JSON.stringify(allitems));
    }
}); 

这里是完整代码:http://jsfiddle.net/Janosch/f0j71/

为了防止重复,我需要更改'#add' click handler 的哪一部分?

【问题讨论】:

  • 问题中需要包含相关代码。
  • 您将不得不遍历 allitems 以查找已经包含您要添加的键/值的对象。

标签: javascript jquery json local-storage


【解决方案1】:

这应该可行:

    ...
    var allitems = JSON.parse(localStorage["saved"]);
    var repeated=allitems.filter(function(a){ return a.myitem==newitem}).length;
    if(!repeated){
        allitems.push({"myitem":newitem});
        localStorage.setItem('saved', JSON.stringify(allitems));
    }else{alert('already added')}
    ...

【讨论】:

  • +1 非常感谢。这行得通。正是我想要的。感谢您提供有用的答案,而不是投反对票并发表评论。
猜你喜欢
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
相关资源
最近更新 更多