最近写代码时突然发现,JS是不能使用‘==’或‘===’直接判断两个数组是否相同的。
let arr = [2, 4, 5];
let a1 = [2, 4];
console.log(arr.slice(0, 2));
console.log(a1);
console.log(a1 == arr.slice(0, 2));
运行结果如下:
如果想要判断两个数组是否相等可以将数组转换为字符串进行比较,
let arr = [2, 4, 5];
let a1 = [2, 4];
console.log(arr.slice(0, 2));
console.log(a1);
console.log(a1 == arr.slice(0, 2));
console.log(a1.join());
console.log(arr.slice(0, 2).join());
console.log(a1.join() == arr.slice(0, 2).join());
运行结果如下:
将数组转换为字符串的方法:
1、arr.toString();
2、arr+"";
3、arr.join();//不传参数,默认使用“,”分隔数组中的元素
4、String(arr);
以上4种方法均可以返回数组的字符串格式,且以逗号间隔元素;