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