如何判断两个数组相同
1、数组之间无法直接通过 ==或===判断是否相同
解决思路:数组无法直接对比,但字符串可以啊
1) 使用toString()
var a = [1, 2, 3]; var b = [1, 2, 3]; console.log(a.toString() === b.toString()); //true 但数组是复合数组就不行了 var a = [1, 2, {name: "zhang"}]; var b = [1, 2, {name: "zhangss"}]; console.log(a.toString() === b.toString()); //true (判断失败)
2) 使用JSON.stringify()
var a = [1, 2, 3]; var b = [1, 2, 3]; console.log(JSON.stringify(a) === JSON.stringify(b)); //true 复合数组也可以判断 var a = [1, 2, {name: "zhang"}]; var b = [1, 2, {name: "zhangss"}]; console.log(JSON.stringify(a) === JSON.stringify(b)); //false 但数组位置变化无法判断 var a = [2, 1, 3]; var b = [1, 2, 3]; console.log(JSON.stringify(a) === JSON.stringify(b)); //false (数组应该是相同的) 解决办法很简单,使用数组的sort()就行 var a = [2, 1, 3]; var b = [1, 2, 3]; console.log(JSON.stringify(a.sort()) === JSON.stringify(b.sort())); // true