私は 'wishlist'機能を構築しようとしています。ボタンをクリックすると、特定の「プロパティ」の名前とリンクがローカルストレージの配列に保存されます。私はユーザーのページにこれを出力します。配列にプッシュする前に多次元配列を検索し、重複データはありません
これまでのところ、私の唯一の問題は、配列にすでに存在していても常にプロパティ名とリンクを挿入するということです。私は小切手を作成し、それがすでにあるかどうかを確認し、見つからなければそれを押してください。
ここには動作するJSFiddleがあります。 "save"ボタンをクリックしてlocalStorageをチェックすると、データが追加されたことがわかります。同じボタンをもう一度クリックすると、もう一度追加されたことがわかります。
https://jsfiddle.net/g9kkx3fh/3/
ここで基本的なコードです。それは、プロパティ名とリンクをクリックした直後のボタンから取得し、localStorageの配列からデータを引き出し、次に.push
を使用して新しいデータを追加し、それを再度ストライピングしてlocalStorageに追加します。
var name = $(this).closest('.text-long').find('.intro-text h4').text();
var permalink = $(this).closest('.text-long').find('.button-slot a').attr('href');
var property = [name, permalink]; // create an array of the name + permalink
var wishlist = JSON.parse(localStorage.getItem("wishlist")); // get the wishlist from storage
wishlist.push(property); // append the new array into the wishlist from storage
localStorage.setItem('wishlist', JSON.stringify(wishlist)); // put the wishlist back in storage
私は多次元であること、配列を反復処理し、そして同じname
VARを探すために必要な知っていました。だから私はこれで始まった:
for (var i = 0; i < wishlist.length; i++) {
var isPresent = ($.inArray(name, wishlist[i]));
}
if (isPresent == -1){
wishlist.push(property);
localStorage.setItem('wishlist', JSON.stringify(property));
}
これは問題です。 localStorage VAR wishlist
が空の場合、そのlength
はwishlist
は常に0
あるので、私はこれをどのように修正すればよいのでi < wishlist.length
は、決して真にはならないので、そのためfor
ループは、働くことはありません0ですか?私のfor
ループは決して動かないので、私はisPresent
という値を得ることができないので、配列に何も追加することはできません。
ここで壊れたコードをJSFiddleだが、forループやif文を追加した:
https://jsfiddle.net/bdxa0sgz/1/
を私も次のことを試してみた:
if (isPresent == -1 || wishlist.length == 0){
...
}
かのようにするにはウィッシュリストは空ですが、それでも実行されます。しかし、これはname
のデータを混乱させ、配列を上書きするようです。私は非常に混乱しています。
https://jsfiddle.net/bdxa0sgz/5/
私のコード例でどのように動作するか教えてください。 – user1486133
OK、これは私のコードでどのように動作するのかを教えてください。私はそれを新しいJSFiddleに追加しました。私はもうlocalStorage配列の何も取得しません:https://jsfiddle.net/Lmygbbvz/1/ – user1486133
あなたのコードで、あなたはあなたのwishlistに何も追加していないので、あなたはlocalStorageで何も取得していません。私はあなたのコードを実行しようとし、それは名前とpermalink varにnullを読み取り、保存ボタンをクリックしたようだ。 – Agam