gpt4 book ai didi

javascript - 使用本地存储创建收藏夹列表

转载 作者:行者123 更新时间:2023-12-03 04:45:38 25 4
gpt4 key购买 nike

我正在尝试实现一个收藏夹列表,该列表获取用户正在查看的当前游戏的 ID。到目前为止我有这个:

$('#favouriteBtn').click(function(){
currentAddFav();
});

function currentAddFav(){
if(localStorage.getItem('favourites')){//If there are favourites
var storage = JSON.parse(localStorage['favourites']);
for (var i = 0;i <= storage.length;i++){
if(storage[i] == currentGame.id){//Id already stored, we dont want a duplicate id so ignore
console.log('id already stored');
break;
}
else{//game id doesn't exist in storage so add the id to storage
storage.push(currentGame.id);
localStorage.setItem('favourites', JSON.stringify(storage));
console.log('must be a new id?');
}
}
}else{//No favourites in local storage, so add new
var favArray= [];
favArray.push(currentGame.id);
localStorage.setItem("favourites", JSON.stringify(favArray));
console.log('New favourites list');
}

}

如果我尝试添加一个新的收藏夹,它可以正常工作,如果我尝试添加与第一次添加到列表中的相同的收藏夹,它可以正常工作。然后,如果我尝试添加与第一次添加的收藏夹不同的收藏夹,本地存储中的数组允许我继续向其中添加新的 ID。

最佳答案

你的循环是错误的

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

对存储中的每个项目执行 if 或 else 情况。您想要的是:

if (storage.indexOf(currentGame.id) == -1) { 
# not found
storage.push(currentGame.id);
localStorage.setItem('favourites', JSON.stringify(storage));
} else {
# found
console.log('item already in favorites')
}

关于javascript - 使用本地存储创建收藏夹列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42880572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com