我在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 :(得分: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。