2017-10-19 269 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的原因是由於javascripts如何處理兩個對象的相等性。你可以閱讀更多關於它here

+0

,但請記住,如果數組是'[「array2」,「array1」]'它不匹配。 –

+0

如何調用elemen的數組單元格foreach語句? – faddi