用object.is 只能判斷兩個物件應用的位址是不是一樣 如果兩個物件的應用位址不一樣。兩個物件對應的鍵和值是一樣的,應用位址不一樣。那麼這時候判斷兩個物件用object.is就行不通了
思路需要遞迴每個鍵看看對應的值是否一樣。
鍵對應的值有兩種可能
如果是基本資料型別 判斷他們的值是否相等就行
如果是複雜資料型別 需要依次遍歷他們的鍵看看值是否一致,當然前提鍵的數量是要一致的。
**
const deepequal = (obj1, obj2) => else
}) : false;
}
例如下面兩個物件
const obj1 = ,
friend: [,]
}const obj2 = ,
friend: [,]
}
通過瀏覽器除錯
js 判斷兩個物件是否相等
判斷兩個物件是否相等 isobjectvalueequal function a,b var aprops object.getownpropertynames a var bprops object.getownpropertynames b if aprops.length bprops.len...
C 判斷兩個物件是否相等
首先在c 中判斷物件相等,是對於引用型別的,兩個 物件用 只是判斷他們的記憶體位址是否一樣 對於字串或者數值,判斷相等只需要用 運算 引用型別 1.對乙個類只是例項化一次 向那些只有賦值沒有new例項化乙個物件的話,拿這些物件指的都是乙個位址 people p1 newpeople people p...
判斷兩個物件是否相等的js函式
如果兩個物件屬性在初始化時出現的順序不一樣 但數目及值一樣,最終比較結果也是true 支援每個屬性又是其他型別,如物件 陣列 數字 字串 function equal obja,objb return allelementsequal 物件 if arguments 0 instanceof obj...