2017-10-19 12 views
1

私はjavascriptで配列を持っています。私はインデックスを検索しようとしてきましたが、非常にイライラしています。配列の中にはオブジェクトがあり、オブジェクトの中には値として配列があります。私はこの試みたjavascript配列の多次元検索インデックス

rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}]; 

var v = {cell:["array1","array2"]}; 
rows.indexOf(v) 

をし、またラジオボタンがあります。ここに

<input type="radio" name='array' value="array1, array2"> 

のjQueryを

これは、ソースコードは次のようになります。

var i = $("input:checked").val().split(','); 
rows.indexOf(i) 

インデックス結果が-1

+0

@ObsidianAgeはい値を配列にするにはsplit()を使用します – faddi

答えて

3

これを試してみてください。これは行内の各インデックスをループし、一致するものがある場合はtrueを返す機能的なアプローチです。

var rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}]; 
var index = rows.findIndex(function(i) { 
    return JSON.stringify(i.cell) == JSON.stringify(["array1","array2"]) 
}); 
console.log(index); 

出力は0を返します。両方のオブジェクトをJSON.stringsに変換する必要がある理由は、javascriptが2つのオブジェクトの等価をどのように処理するかによるものです。あなたはそれについてもっと読むことができますhere

+0

配列が '[" array2 "、" array1 "]'であれば覚えておいてください。 –

+0

配列セルforeachステートメントのelemenを呼び出す方法? – faddi