如何使用jQuery比较两个数组(可以有:DOM元素,数字,字符串,数组或字典)?

时间:2010-09-01 00:28:40

标签: javascript jquery arrays compare

我找到了这个方法:

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 个答案:

答案 0 :(得分: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函数并将它们与等于运算符进行比较。