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

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

比較沒有對(duì)象引用的兩個(gè)對(duì)象 Angular 10

比較沒有對(duì)象引用的兩個(gè)對(duì)象 Angular 10

慕的地8271018 2023-07-14 15:32:40
我想比較兩個(gè)對(duì)象看看它們是否相等。對(duì)象 A (offer) 是原始對(duì)象,對(duì)象 B (offerTemp) 是 A 的副本。對(duì)象 A 顯示在組件的表格中,以查看表格中是否有任何更改,我想將 A 與 B 進(jìn)行比較。但是當(dāng)我調(diào)用該函數(shù)來檢查它們是否相等時(shí),它說對(duì)象不相等。我認(rèn)為這是因?yàn)閷?duì)象 A 有該對(duì)象的引用,而 B 沒有(至少這是我在控制臺(tái)中記錄這兩個(gè)對(duì)象時(shí)看到的)。對(duì)象 A(報(bào)價(jià))(來自控制臺(tái)):Offer {id: 1834, title: "A great article offer - 1834", description: "browser", sellDate: Mon Dec 25 2045 21:54:06 GMT+0100 (Central European Standard Time), valueHighestBid: 753, …}對(duì)象 B (offerTemp)(來自控制臺(tái)):{id: 1834, title: "A great article offer - 1834", description: "browser", sellDate: Mon Dec 25 2045 21:54:06 GMT+0100 (Central European Standard Time), valueHighestBid: 753, …}這是來自component.ts:ngOnInit(): void {    this.offer = this.offerService.FindById(this.editOfferId);    this.offerTemp = Object.assign({}, this.offer);  }cancelSelected(offer: Offer): void{    if (offer === this.offerTemp) {    // do stuff...    }    else {      console.log(this.offer === this.offerTemp); // false in the console      console.log(this.offer);      console.log(this.offerTemp);    }  }這是我的 html 中的部分:<div>  <table>    <tr>       <th>Selected offer details: (id: {{offer.id}})</th>    </tr>    <tr>      <td>Title</td>      <td>        <input [(ngModel)]="offer.title" type="text" name="" id="">      </td>    </tr>    <tr>      <td>description</td>      <td>        <input [(ngModel)]="offer.description" type="text" name="" id="">        </td>    </tr>    <tr>      <td>auctionStatus</td>      <td>        <select>          <option *ngFor="let key of keys" [value]="key" [selected]="offer.auctionStatus">{{statusen[key]}}</option>        </select>      </td>    </tr>    <tr>      <td>valueHighestBid</td>      <td>        <input [(ngModel)]="offer.valueHighestBid" type="text" name="" id="">     </td>    </tr>有沒有什么方法可以在沒有對(duì)象引用的情況下比較這些對(duì)象,或者可以通過其他方式解決這個(gè)問題?
查看完整描述

2 回答

?
飲歌長(zhǎng)嘯

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ì)象的屬性并比較它們的值。


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
30秒到達(dá)戰(zhàn)場(chǎng)

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


查看完整回答
反對(duì) 回復(fù) 2023-07-14
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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