-3

我有一个关于使用 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{};
4

4 回答 4

1

如果您不想自己处理细节,underscore.js 中的isEqual 方法可能会有所帮助。

于 2012-11-06T22:04:12.460 回答
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");}​

http://jsfiddle.net/nY7Pk/

于 2012-11-06T22:00:41.883 回答
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");
}

​</p>

于 2012-11-06T22:04:04.057 回答
-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。

于 2012-11-06T21:58:24.837 回答