2016-05-30 11 views
2

localStorageにデータを追加しようとしていますが、これは多次元配列です。.pushの前に配列にデータが存在するかどうかをチェックする

配列にデータを「追加」するために、私は私の新しいデータを追加するarray.pushを使用して、.getItemとのlocalStorageからそれを引っ張ってるし、その後.setItem

とそれをリセットすると、配列データは以下のように少し見えますこの:

var wishlist = [ 
["210 Derby Road","http://localhost:8888/properties/210-derby-grove/"] 
] 

これが私の唯一の問題は2倍のデータを追加していないので、私は、配列を検索し、それが存在だかどうかを確認する必要が正常に動作します。

私はjQueryのユーティリティ関数を使用して、単純に最初に試さ:この場合

console.log($.inArray(name, wishlist)); 

nameを、それが真を返す必要がありますので210 Derby Roadです。これは、データが存在していても-1を返しました。

これは私が代わりにサブアレイをループするために必要な多次元配列であるので、私は多分考え出したので、私はforループ作成:

for (var i = 0; i < wishlist.length; i++) { 
    console.log($.inArray(name, i)); 
} 

を私はまだ-1が返さ取得しています。

アレイwishlistを確認して、nameが存在するかどうかを確認するにはどうすればよいですか?

JSFiddle

答えて

3

あなたは、ほぼ右のそれを得ました!使用:

for (var i = 0; i < wishlist.length; i++) { 
    console.log($.inArray(name, wishlist[i])); 
} 

原因wishlist[i]は現在の配列です。あなたは純粋なJS方法Array.prototype.includes()で行うことができます

if($.inArray(name, wishlist[i]) > -1) { /* do something*/ } 
+1

ありがとうございます!だからまだ近い。 – user1486133

0

:好きブール値を取得するよりも

wishlist.findIndex(f => f.includes(name)) === -1 && // push it. 
関連する問題