项目中遇到要判断两个数组是否相等,在控制台直接打印了一下,发现是不相等的,需要通过JSON.stringify()将数组转换成JSON字符串后在进行对比,如下图所示结果:
代码如下:
var arr1 = [1,2,3,4];
var arr2 = [1,2,3,4];
arr1 == arr2;//false
JSON.stringify(arr1) === JSON.stringify(arr2);//true
JSON.stringify(arr1) == JSON.stringify(arr2);//true
以上方法是蛮好用的,博主也是很开心的就用了这个方法实现了自己的代码需求,但是评论区有大佬提到数组中加入undefined时,输出是空,后面我试了一下确实如此。
而且上述方法,在两个数组中的数据排列顺序不一致时,也会判断出两个数据不相等,这个是不合理的,所以修改一下:
所以使用如下代码进行判断即可:
arr1.sort().toString() == arr2.sort().toString()