javascript数组多维搜索索引

时间:2017-10-19 20:55:53

标签: javascript arrays search indexof

我在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

1 个答案:

答案 0 :(得分: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