数组存在于数组数组中
问题描述:
如何检查数组是否存在于数组数组中?我已经尝试了简单的JavaScript和jQuery方法,但似乎没有帮助。数组存在于数组数组中
IE这不起作用:
$.inArray([1,2], [[0], [], [1,2]])
甚至更简单的一个:
[1,2] == [1,2] //gives false.
[1,2] === [1,2] //gives false.
顺序我的任务不是重要,只有相同的元素存在的是neccesary。
答
在对象(和数组是对象)中,要比较相等性,您必须检查每个成员。
function arraysAreEqual(a, b) {
if (a.length != b.length) return false;
for (i = 0, l = a.length; i < l; ++i) {
if (a[i] != b[i]) {
return false;
}
}
return true;
}
你可以通过嵌套数组来实现递归搜索,但你明白了。
答
我想比较数组是否相等,你必须比较单个元素,不能直接比较数组。 即可循环其中之一并检查每个元素(即1或2)是否出现在您正在比较的另一个数组中,即[1,2]。
答
var arr = [[0], [], [1,2]];
var needle = [1, 2];
var i, entry, position = -1;
for(i = 0; entry = arr[i]; i++) {
if(entry.toString() == needle.toString()){
position = i;
break;
}
}
//position = 2
编辑:这也适用于嵌套数组