我有一个关于使用jQuery比较2个数组的快速问题。我有两个数组,只有当它们完全相同(相同的大小,元素,顺序)时才需要调用它。
例如,给定这两个数组:
a['zero','one','two','three','four','five','six','seven', 'eight','nine'];
b['zero','one','two','three','four','five','six','seven', 'eight','nine'];
如果这两个数组相同并且顺序相同,请执行:
do function{};
答案 0 :(得分:1)
如果您不想自己处理详细信息,isEqual method in underscore.js可能会有所帮助。
答案 1 :(得分: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");}
答案 2 :(得分: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");
}
答案 3 :(得分:-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。