2017-10-19 151 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