2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
JavaScript 沒有針對(duì)對(duì)象和數(shù)組的內(nèi)置屬性相等運(yùn)算符。
檢查對(duì)象是否相等的一個(gè)簡(jiǎn)單方法是使用 JSON.stringify:
JSON.stringify(objectA) === JSON.stringify(objectB);
這會(huì)將對(duì)象轉(zhuǎn)換為字符串并使之易于比較。當(dāng)對(duì)象嵌套時(shí),這種方法也很有效。
另一種選擇是使用 equals 方法(或者更好的是也適用于嵌套對(duì)象的深度 equal 方法),該方法迭代所有對(duì)象的屬性并比較它們的值。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
僅當(dāng)兩個(gè)變量引用同一對(duì)象時(shí),使用三個(gè)等號(hào)對(duì)兩個(gè)對(duì)象進(jìn)行比較===
才會(huì)返回。true
你顯然不希望這樣。
您需要?jiǎng)?chuàng)建自己的比較對(duì)象的方式,或者使用一些提供對(duì)象深度比較的 javascript 庫(kù),例如來自 lodash 的_.isEqual :
let object = { 'a': 1 };
let other = { 'a': 1 };
?
_.isEqual(object, other);
// => true
?
object === other;
// => false
添加回答
舉報(bào)