討論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