如何比较nodejs中的两个数组

时间:2014-04-02 13:15:37

标签: javascript node.js

说我有两个数组

["a", "b", "c"]

["c", "a", "b"]

比较这两个数组并查看它们是否相等的最佳方法是什么(对于上述情况,它们应该相同)

2 个答案:

答案 0 :(得分:4)

function compareArrays(array1, array2) {
    array1 = array1.slice();
    array2 = array2.slice();
    if (array1.length === array2.length) {       // Check if the lengths are same
        array1.sort();
        array2.sort();                           // Sort both the arrays
        return array1.every(function(item, index) {
            return item === array2[index];       // Check elements at every index
        });                                      // are the same
    }
    return false;
}

console.assert(compareArrays(["a", "b", "c"], ["c", "a", "b"]) === true);

答案 1 :(得分:1)

您可以尝试使用_.difference

var diff = _(array1).difference(array2);
if(diff.length > 0) {
    // There is a difference
}

这不起作用,因为第一个数组的不同返回diff。 _.difference(['a'],['a','b'])是0,但是两个数组不相等。