js判断两个数组是否相同

分类:教程 日期:

在 js 中,判断基本类型是否相等很简单,只需要 == 或者 === 就可以,而非基本类型就没那么简单了,像数组,如果使用 == 或者 ===,得到到都是 false,比如:

var arr1 = [1, 2, 3]
var arr2 = [1, 2, 3]
console.log(arr1 == arr2) // false
console.log(arr1 === arr2) // false

那数组应该如何判断是否相同呢?先看代码:

/**
 * 判断数组是否相同
 * @param {Array} array1
 * @param {Array} array2
 */
export function scalarArrayEquals(array1, array2) {
    return array1.length === array2.length && array1.every(function(val, index) { return val === array2[index]})
}

从上面的代码可以看到,首先是判断两个数组的长度是否相等,如果长度相等,再对数组的每一项进行对比,如果每一项都相等,那这两个数组就相等。