我找到了这个方法:
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?
由于
答案 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
函数并将它们与等于运算符进行比较。