2010-09-01 25 views
2

我發現這個方法:如何使用jQuery比較兩個數組(可以有:DOM元素,數字,字符串,數組或字典)?

Array.prototype.compare = function(arr) { 
    if (this.length != arr.length) return false; 
    for (var i = 0; i < arr.length; i++) { 
     if (this[i].compare) { 
      if (!this[i].compare(arr[i])) return false; 
     } 
     if (this[i] !== arr[i]) return false; 
    } 
    return true; 
} 


var a = ['aa',[1,2,3]] 
var b = ['aa',[1,2,3]] 
alert(a.compare (b)) 


但是,當我進行深入比較時,它會返回false

那麼你用什麼方法比較兩個數組,使用jQuery?

感謝

回答

1

有這個沒有jQuery的解決方案 - jQuery是主要用於DOM操作,Ajax和一些簡單的動畫。它帶有一小部分實用程序,但據我所知,它們都沒有這個功能。

但是,我找到了代碼中的錯誤。

Array.prototype.compare = function(arr) { 
    if (this.length != arr.length) return false; 
    for (var i = 0; i < arr.length; i++) { 
     if (this[i].compare) { 
      if (!this[i].compare(arr[i])) return false; 
     } else { // <-- Here! 
      if (this[i] !== arr[i]) return false; 
     } 
    } 
    return true; 
} 

您需要使用if - else這裏,而不是再同時運行.compare功能,並將它們與相等運算符比較。