2010-09-01 71 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功能,并将它们与相等运算符比较。

相关问题