比较两个数组元素是否完全相同
如果直接比较,比较的是两个对象,只有同一个对象比较才会相等
一个思路是:将数组元素转为字符串,通过字符串比较
如果顺序不一样,可以先排序再进行比较
let arr1 = [1, 2, 3] let arr2 = [1, 2, 3] let arr3 = [3, 2, 1] // 直接比较 console.log(arr1 == arr1) // true console.log(arr1 == arr2) // false console.log(arr1 == arr3) // false // toString 转为字符串后再比较 console.log(arr1.toString()); // 1,2,3 console.log(arr1.toString() == arr1.toString()) // true console.log(arr1.toString() == arr2.toString()) // true console.log(arr1.toString() == arr3.toString()) // false // join 转为字符串后再比较 console.log(arr1.join()); // 1,2,3 console.log(arr1.join() == arr1.join()) // true console.log(arr1.join() == arr2.join()) // true console.log(arr1.join() == arr3.join()) // false // sort 排序后再比较 console.log(arr1.sort()); // [ 1, 2, 3 ] console.log(arr1.sort().toString() == arr1.sort().toString()) // true console.log(arr1.sort().toString() == arr2.sort().toString()) // true console.log(arr1.sort().toString() == arr3.sort().toString()) // true
比较对象数组
let obj1 = {name: 'Tom', age: 20} let obj2 = {name: 'Tom', age: 20} // JSON.stringify 可比较对象数组 console.log(JSON.stringify(obj1)); // {"name":"Tom","age":20} console.log(JSON.stringify(obj1) == JSON.stringify(obj2)) // true
参考