現在有兩個物件:
let a =let b =
如何判斷物件a和物件b相等呢?
a==b //false
object.is(a,b) //false
這個時候需要自己定義乙個方法來判斷物件內容值是否相等,**如下:
functionobjequal(a, b)
for (let key in
a)
if (a[key] !==b[key])
}return
true
}
但是,如果涉及到物件內部還存在複式結構的,比如:
let c = }let d = }
這樣如何解決呢?
回答:採用巢狀就可以啦~~
**如下:
functionobjequal(a, b)
for (let key in
a)
if (typeof(b[key]) === 'function' || typeof(a[key]) === 'function')
if (typeof(b[key]) != typeof
(a[key]))
if (typeof(a[key]) === 'object')
if (a[key] !==b[key])
}return
true
}
記錄一下我的實現過程,參考參考~~
C 判斷兩個物件是否相等
首先在c 中判斷物件相等,是對於引用型別的,兩個 物件用 只是判斷他們的記憶體位址是否一樣 對於字串或者數值,判斷相等只需要用 運算 引用型別 1.對乙個類只是例項化一次 向那些只有賦值沒有new例項化乙個物件的話,拿這些物件指的都是乙個位址 people p1 newpeople people p...
js 判斷兩個物件是否相等
判斷兩個物件是否相等 isobjectvalueequal function a,b var aprops object.getownpropertynames a var bprops object.getownpropertynames b if aprops.length bprops.len...
js判斷兩個物件是是否相等
用object.is 只能判斷兩個物件應用的位址是不是一樣 如果兩個物件的應用位址不一樣。兩個物件對應的鍵和值是一樣的,應用位址不一樣。那麼這時候判斷兩個物件用object.is就行不通了 思路需要遞迴每個鍵看看對應的值是否一樣。鍵對應的值有兩種可能 如果是基本資料型別 判斷他們的值是否相等就行 如...