let a_arr = [1,2]
let b_arr = [2,1]
a_arr.sort()
b_arr.sort()
console.log(a_arr==b_arr)
console.log(a_arr)
console.log(b_arr)
所以怎么让他返回true呢,除了JSON.stringify() 还有别的方法么
let a_arr = [1,2]
let b_arr = [2,1]
a_arr.sort()
b_arr.sort()
console.log(a_arr==b_arr)
console.log(a_arr)
console.log(b_arr)
所以怎么让他返回true呢,除了JSON.stringify() 还有别的方法么
因为非简单类型的数据,比较的的都是内存地址。
看两个例子
var a = [1,2]; // a申请了一块地址
var b = a; // 此时b指向了a的地址
a === b // true
var a = [1,2]; // a申请了一块地址
var b = [1, 2]; // b又申请了一块地址
a === b // false 因为是两个不同的地址
数组比较的是内存地址,比如
var arr1 = [1,2,3]
var arr2 = arr1;
console.log(arr1 == arr2) //true
arr2[0] = 10;
console.log(arr1 == arr2) //true
console.log(arr1) // 10,2,3
console.log(arr2) // 10,2,3
13 回答12.8k 阅读
7 回答1.9k 阅读
5 回答1.4k 阅读
3 回答1.1k 阅读✓ 已解决
5 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答873 阅读✓ 已解决
不是一个数组 永远不会相等的