如果两个数组与jQuery相同,则调用函数

时间:2012-11-06 21:53:58

标签: javascript jquery

我有一个关于使用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 个答案:

答案 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");}​

http://jsfiddle.net/nY7Pk/

答案 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。