说我有两个数组
["a", "b", "c"]
["c", "a", "b"]
比较这两个数组并查看它们是否相等的最佳方法是什么(对于上述情况,它们应该相同)
答案 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,但是两个数组不相等。