注意:目前網絡的解答方案有很多了,但是很多人還是覺得並不是自己想要的,本篇文章幫助各位同仁確認范圍和需求。
注意:兩個數組或對象的直接比較,是對於地址的比較,不是來自同一地址的均不相等。
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