讨论js比较两个数组(对象)是否相等的范围


注意:目前网络的解答方案有很多了,但是很多人还是觉得并不是自己想要的,本篇文章帮助各位同仁确认范围和需求。

注意:两个数组或对象的直接比较,是对于地址的比较,不是来自同一地址的均不相等。

1.两个简单的数组或对象

  A.无数组对象嵌套,且不考虑顺序或值类型的异同,可采用方法简便为:

    转换为字符串类型进行比较,常用方法toString

  B.无数组对象嵌套,考虑顺序但不考虑值类型的异同,可采用方法简便为:

    数组可以通过sort排序再进行toString对比,对象则可以通过遍历,用hasOwnProperty先行比较属性是否存在再进行单个值对比

  C.无数组对象嵌套,考虑顺序且考虑值类型的异同,可采用方法为:

    通过遍历对比各个值的异同,可通过添加类型、长度等判断优化循环

2.两个复杂的数组或对象

  A.数组对象嵌套,且不考虑顺序或值类型的异同,可采用方法简便为:

    转换为字符串类型进行比较,常用方法toString

  B.数组对象嵌套,考虑顺序但不考虑值类型的异同,可采用方法简便为:

    通过循环+递归的方式,往复执行1方式的B操作即可

  C.数组对象嵌套,考虑顺序且考虑值类型的异同,可采用方法为:

    通过循环+递归的方式,往复执行1方式的C操作即可

 

附网络一些解决方法的地址:

https://blog.csdn.net/gs981600308/article/details/90401843

https://www.jianshu.com/p/7407bd65b15d

https://segmentfault.com/a/1190000018266129

https://www.cnblogs.com/abc-x/p/10780464.html


免责声明!

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



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