Javascript中判断两个数组是否相等

2,522 阅读1分钟

判断两数组是否相等的简洁方法

js不能直接用==或===判断两个数组是否相等,需要将数组转换为字符串后再进行判断。

  • 若直接用==或===判断,则返回false 例:
console.log([6,7,8]==[6,7,8]);
console.log([6,7,8]===[6,7,8]);
console.log(["xx","yy","zz"]==["xx","yy","zz"]);
console.log(["xx","yy","zz"]===["xx","yy","zz"]); 
  • 转换为字符串后再判断,若相等返回true,若不相等,则返回false 例:
 console.log([111,222,333].toString()==[111,222,333].toString());
 console.log(["xx","yy","zz"].toString()===["xx","yy","zz"].toString());
 //相等   返回true
 console.log([111,222,333].toString()==[999,222,333].toString());
 console.log(["xx","yy","zz"].toString()===["hh","yy","zz"].toString());
 //不相等 返回false
  • 当数组元素相同,元素顺序不同时,先将两数组进行排序,再判断两数组是否相等 例:
 console.log([1,2,3].sort.toString()==[3,1,2].sort.toString()); 
 //先排序再判断

纯属交流学习,若发现漏洞请小伙伴们揪出来哟!