<强>一、问题强>
在js中是不能直接用“==被蛘?==="来计算两个数组是否相等的,那么就需要对数组的值进行比较,
<强>二次,解决方案强>
对于比较两个数组次要的方法有如下几种,为什么说是次要解决方案呢?因为它不能真正称之为对两个数组的对比。
1。把两个数组转化为字符串的形式比较,如下:
。当两个数组元素类型相同,顺序相同时,直接判断是否相等,结果不相等;转化为字符串后,结果相等;
var=[1、2、3、4); var b=a.slice (); console.log(一个); console.log (b);控制台。日志(a==b);==JSON.stringify console.log (JSON.stringify (a) (b));
,
运行结果:
2。当两个数组元素类型不同,顺序相同时,用toString()转化为字符串,结果相等;函数用把转化为字符串,结果不相等;
var=[1、2、3、4); var b=[1, 2, 3, 4); console.log(一个); console.log (b);console.log (a.toString ()==b.toString ());==JSON.stringify console.log (JSON.stringify (a) (b)); >之前 ,运行结果如下:
3。当两个数组不相同时,先排序,再转化为Json字符串比较,结果相等:
var=[1、2、3、4); var b=[4、2、3、1]; console.log(类似()); console.log (b.sort ()); console.log (JSON.stringify(类似())==JSON.stringify (b.sort ())),
运行结果:
4。当数组包含对象时,先排序,再进行比较,结果相等:
var=[{“x”:“abc”}, 2, 3, 4); var b=[4、2、3, {“x”:“abc”}); console.log(类似()); console.log (b.sort ());console.log (JSON.stringify(类似())==JSON.stringify (b.sort ())),
运行结果:
从以上可以看出:
1。如果两个数组元素类型相同,顺序相同时,函数用把转化为字符串后进行比较,
2只如果两个数组元素类型相同,顺序不相同时,排序后,函数用把转化为字符串再进行比较,
3。两个数组元素类型不同时,函数用把转化为字符串后进行比较,数组不相等;用toString()转化为字符串后进行比较,数组相等;
以上就是本次介绍的全部相关知识点,内容还需要待补充,后期小编会完善相关内容,跟多内容可以在下方的相关文章学习。
JS中比较两个对象数组是否相等方法实例