如何判断两个数组相同


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

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM