ユーザーが現在見ているゲームの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を追加することができます。
何が問題なのですか? – niklas
@niklas基本的には、ユーザーがお気に入りに一度しか配列を追加できないようにしたい、重複idsを避けたい、現在重複idsを取得している、ループの下のif文とelse文が毎回起動するクリックすると、それはちょうどどちらか一方になるはずです。 – Rick