LocalStorage json数组保存 - >防止重复

时间:2014-04-09 20:41:22

标签: javascript jquery json local-storage

我只是编写了一个小片段来与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的哪一部分?

1 个答案:

答案 0 :(得分: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')}
    ...