2011-06-19 73 views
0
openList = Array([1,1], [2,3], [4,5]); 
containss = function (input, arrayData, tellID) { 
    for (i = 0; i < arrayData.length; i++) { 
     if (arrayData[i] == input) { 
      if (tellID) { 
       return i; 
      } else { 
       return true; 
      } 
     } 
    } 
    return false; 
} 
trace(containss([2,3], openList, true)); 

當openList包含2,3時,此代碼返回false。當我添加trace(arrayData [i])時,我得到1,1 2,3 4,5,當我跟蹤(輸入)時,我得到2,3。哪裏不對?由於創建測試數組是否包含某些東西的函數

回答

0

您正在使用等於運算符比較2個陣列:

arrayData[i]==input

這將永遠是假的,不管數組的內容。如果arraydata[i]input具有相同的對象,而不是2個不同的對象(數組)具有相同的內容,則在您的案例中,相同的運算符會進行測試。

+0

好的,我應該用什麼來代替?我試過了===但是也給出了錯誤。 – apscience

+1

如果數組必須具有相同順序的相同元素,最簡單的方法是array1.toString()== array2.toString() –

+0

如果順序不重要,並且數組中只應該有相同的元素爲了您可能必須編寫一個自定義函數 –

相關問題