0

有没有一种简单的方法来比较两个数组,然后如果数组相等则弹出警报(或稍后的其他功能),如果不相等则弹出警报?

这是我的数组

var answerKey = ["four", "two", "one", "three"];
var answers = [];

到目前为止,我有 jQuery

$("#subBtn").click(function() {
$('#bin a').each(function() {
    answers.push($(this).attr('name'));
})
console.log(answers);
});

HTML

<ul>
    <li><a draggable="true" href="#" id="one" name="uno" class="imgHvr">One</a></li>
    <li><a draggable="true" href="#" id="two" name="dos" class="imgHvr">2</a></li>
    <li><a draggable="true" href="#" id="three" name="tres" class="imgHvr">three</a></li>
    <li><a draggable="true" href="#" id="four" name="sweet" class="imgHvr">4</a></li>
</ul>
4

2 回答 2

1

只需逐个元素比较两个数组。

function arraysEqual(arr1, arr2){
    if (arr1.length != arr2.length) return false;

    for (var i=0;i<arr1.length;i++){
        if (arr1[i] != arr2[i]) return false;
    }

    return true;
}

单击处理程序...

 $("#subBtn").click(function() {
    var answers = [];
    $('#bin a').each(function() {
        answers.push($(this).attr('name'));
    }); 

    console.log(answers);

    if (!arraysEqual(answerKey, answers)) {
        alert("something");
    }
});

完全复制这个

于 2012-11-02T19:39:13.437 回答
0

如果您不想逐个元素比较,这应该有效:

if (JSON.stringify(array_1) == JSON.stringify(array_2)){
....
}
于 2012-11-02T19:46:23.570 回答