数组存在于数组数组中

问题描述:

如何检查数组是否存在于数组数组中?我已经尝试了简单的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 

编辑:这也适用于嵌套数组