2010-10-12 57 views
4

如何檢查數組是否存在於數組數組中?我已經嘗試了簡單的JavaScript和jQuery方法,但似乎沒有幫助。數組存在於數組數組中

IE這不起作用:

$.inArray([1,2], [[0], [], [1,2]]) 

甚至更​​簡單的一個:

[1,2] == [1,2] //gives false. 
[1,2] === [1,2] //gives false. 

順序我的任務不是重要,只有相同的元素存在的是neccesary。

回答

4

在對象(和數組是對象)中,要比較相等性,您必須檢查每個成員。

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

我想比較數組是否相等,你必須比較單個元素,不能直接比較數組。 即可循環其中之一併檢查每個元素(即1或2)是否出現在您正在比較的另一個數組中,即[1,2]。

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 

編輯:這也適用於嵌套數組