js如何判断两个数组是否相等

时间:2025-05-15 13:52:12

今天在实现一个需求的时候,需要去判断两个数组是否相等,看似简单的问题,实则还挺复杂。

首先我们知道数组是引用数据类型,在==或者===比较时,比较的是其地址值,所以[1,2] == [1,2]     [1,2] === [1,2] 二者输出的都是false,

那么如何比较两个数组是否相等呢

1. toString()或者join():

它们的原理都是将二者转换成字符串,针对某一些数组可以进行判断,如:[1,2,3].toString() === [1,2,3].toString()  和   [1,2,3,'hah'].toString() === [1,2,3,'hah'].toString()都可以打印出true,

但是有些数组则是无法进行判断比如:[{name:'tu'},{sex:'男'}]这类的数组则无法用这种方法比较,因为对象转换成字符串是[object Object],最终都会打印出true

2. ()

用这个方法可以很好的解决这个问题,([{name:'tu'},{sex:'男'}]) == ([{name:'tu'},{sex:'男'}])   true

 ([{name:'tu'},{sex:'男'}]) == ([{name:'min'},{sex:'女'}])   false