2012-11-06 36 views
-3

我有一個關於使用jQuery比較兩個數組的快速問題。我有兩個數組,我只需要調用一個函數,只要它們完全相同(相同的大小,元素,順序)。如果兩個數組與jQuery相同,則調用函數

例如,給定這兩個數組:

a['zero','one','two','three','four','five','six','seven', 'eight','nine']; 
b['zero','one','two','three','four','five','six','seven', 'eight','nine']; 

如果這兩個是陣列是相同的,並且以相同的順序,執行:

do function{}; 
+6

本網站旨在幫助您完成任務,而不是爲您做事。 –

+0

您必須循環並直接比較它們。 –

+0

以下是StackOverflow中類似問題的答案。 http://stackoverflow.com/questions/27030/comparing-arrays-of-objects-in-javascript –

回答

0

小類型強制避免循環:

var myarray=["Joe", "Bob", "Ken"]; 
    var myarray2=["Joe", "Bob", "Ken"]; 
    var myarray3=["Joe", "Beb", "Ken"]; 
if(myarray == ""+myarray2){alert("something");} 
if(myarray == ""+myarray3){alert("something else");}​ 

http://jsfiddle.net/nY7Pk/

+0

謝謝你這個工作! –

-1

下面是使用普通的JavaScript一個例子 - 其你可以使用jQuery。

if (a.length === b.length) { 
    var isMatch = true; 
    for (var i = 0; i < a.length; i++) { 
     if (a[i] !== b[i]) { 
      isMatch = false; 
      break; 
     } 
    } 

    if (isMatch) { 
     alert('It was all identical'); 
    } 
} 

如果你想允許你的比賽雜耍,你可以改變!==!=

!==將返回false如果類型或值不匹配。

!=如果值不匹配,將在處理類型後返回false。

0
var a=['zero','one','two','three','four','five','six','seven', 'eight','nine']; 
var b=['zero','one','two','four','three','five','six','seven', 'eight','nine']; 
var difference = []; 

jQuery.grep(a, function(element, index) { 
    if(a[index]!=b[index]) 
     difference.push(element); 
}); 

if(difference.length>0){ 
    alert("Do something"); 
} 

+1

請記住,這對於具有複雜值的數組(如其他數組或對象)無效。 –

1

isEqual method in underscore.js可能是有益的,如果你不想自己處理的細節。

+0

嘿謝謝,但我必須使用當前版本的jQuery實現解決方案。不過我會記住它的。 –

相關問題