第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么不使用等式檢查數(shù)組

為什么不使用等式檢查數(shù)組

catspeake 2019-09-03 16:07:39
我開始時(shí):"1:2".split(':') == ["1","2"]; // false然后嘗試:[1,2] == [1,2];// false最終:[] == []; // false我發(fā)現(xiàn)了:"1:2".split(':').toString() == [1,2].toString();// true所以我已經(jīng)解決了我的初始問題(種類),但為什么數(shù)組不能相互匹配?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊


Javascript數(shù)組是對(duì)象,您不能簡(jiǎn)單地使用相等運(yùn)算符==來理解這些對(duì)象的內(nèi)容是否相同。等于運(yùn)算符將僅測(cè)試兩個(gè)對(duì)象實(shí)際上是否完全相同(例如myObjVariable==myObjVariable,適用于null且undefined也是如此)。


如果你需要檢查兩個(gè)數(shù)組是否相等,我建議只遍歷兩個(gè)數(shù)組并驗(yàn)證所有元素是否具有相同的值(并且兩個(gè)數(shù)組的長(zhǎng)度相同)。


關(guān)于自定義對(duì)象的相等性,我會(huì)構(gòu)建一個(gè)特定的equals函數(shù),然后將它添加到類的原型中。


考慮到最終你將兩個(gè)數(shù)組轉(zhuǎn)換為String測(cè)試結(jié)果字符串的相等性,有一天你可以考慮使用一個(gè)類似但更通用的技術(shù),你會(huì)發(fā)現(xiàn)它在很多地方描述:


JSON.stringify(OBJ1) === JSON.stringify(OBJ2) 

好吧,不要。


雖然如果屬性的順序?qū)τ谀切?duì)象實(shí)例總是相同的,這可能會(huì)起作用,但是這樣就可以打開那些難以追蹤的非常討厭的錯(cuò)誤。總是喜歡更明確的方法,只需編寫一個(gè)干凈且可讀的函數(shù)來測(cè)試相等性檢查所有必需的字段。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

==用于在JavaScript對(duì)象操作者僅檢查是否該對(duì)象是相同的實(shí)際對(duì)象引用,而不是如果它們包含相同內(nèi)容的兩個(gè)單獨(dú)的對(duì)象。沒有內(nèi)置運(yùn)算符來檢查它們是否包含相同的內(nèi)容。您必須自己編寫一個(gè)函數(shù)來進(jìn)行這種比較。

只要數(shù)組元素只包含原始值(而不是其他對(duì)象),您的字符串轉(zhuǎn)換就是比較兩個(gè)數(shù)組的一種方法。如果數(shù)組元素可以包含其他元素,那么您必須確保這些對(duì)象本身也轉(zhuǎn)換為代表性字符串。

并且,轉(zhuǎn)換為字符串不會(huì)在包含的數(shù)組元素與包含的數(shù)組元素之間分辨"4",4因?yàn)閮烧叨嫁D(zhuǎn)換為"4"字符串表示形式。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
  • 3 回答
  • 0 關(guān)注
  • 335 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)