javascript 中判断两个数组相等有两种方法:严格相等 (===) 和深度相等。严格相等仅在两个数组引用同一内存位置时返回 true,而深度相等(使用 lodash.isequal 函数)会递归比较数组中的每个元素,包括嵌套数组和对象,并返回 true 以表示深度相等。
JavaScript 中判断两个数组相等的两种方法
1. 严格相等 (===)
最简单的方法是使用严格相等运算符 (===):
const arr1 = [1, 2, 3]; const arr2 = [1, 2, 3]; if (arr1 === arr2) { console.log("数组相等"); } else { console.log("数组不相等"); }
此方法仅在两个数组完全相同(引用同一内存位置)时返回 true。如果两个数组包含相同的值但不是同一对象,则返回 false。
2. 深度相等(使用库)
对于需要比较复杂对象(例如嵌套数组或对象)的情况,可以使用第三方库(如 lodash)提供深度相等比较功能。Lodash 提供的 isEqual 函数可以用于深度比较数组:
const lodash = require("lodash"); const arr1 = [1, 2, [3, 4]]; const arr2 = [1, 2, [3, 4]]; if (lodash.isEqual(arr1, arr2)) { console.log("数组相等"); } else { console.log("数组不相等"); }
isEqual 函数递归比较数组中的每个元素,包括嵌套数组和对象。它返回 true,表明两个数组深度相等。