亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 array.push() 函數復制數組而不重復鍵值?

如何使用 array.push() 函數復制數組而不重復鍵值?

富國滬深 2023-08-24 18:23:01
我正在開發一個食品車功能,將產品添加到購物車中。我的購物車是數組類型,產品是帶有鍵值的對象。我面臨的問題是,每當我嘗試為相似的密鑰添加具有不同值的新產品時,它也會覆蓋舊產品的相同密鑰的值。根據我的理解,數組只是指向我的產品對象的引用,但我想知道解決此問題的最佳方法是什么?我的代碼結構如下:組件.tsthis.cartService.add(product); // <- This Product contains key modifier: ["abc","def"]購物車服務.tsadd(product) {   product.qty = 1;   product.total = product.price;   this.cart.push(product);}因此,每次我使用不同的修飾鍵(例如 -> 修飾符:["dfg", "gght"])將產品推入購物車時,它都會使用所有修飾鍵的新值覆蓋現有的 this.cart 數組對象。以下是我的 this.cart 數組中的兩個產品的記錄方式:(2) [{…}, {…}]0:category: "-M9JfAlqr_JiAiPTugc5"description: "zxfsfsafas afa fsaff fsf safsa sfaf safs afsafa fas asf safs af aasf asfa asf ."isAvail: truekey: "-MMWt2wDMVaHqj45eKFg"modifiers: ["-MLxJCw0s0uDYSXYokz1"]name: "Single Modifier"price: 23qty: 1selectedModifiers: ["Corn"]  // <- This is initially empty when I added this product but after adding second product this also took the value of second.total: 23__proto__: Object1:category: "-M9JfAlqr_JiAiPTugc5"description: "zxfsfsafas afa fsaff fsf safsa sfaf safs afsafa fas asf safs af aasf asfa asf ."isAvail: truekey: "-MMWt2wDMVaHqj45eKFg"modifiers: ["-MLxJCw0s0uDYSXYokz1"]name: "Single Modifier"price: 23qty: 1selectedModifiers: ["Corn"] // <- This is correct but after adding this product, this selectedModifiers value also gets added to first product. See above.total: 23__proto__: Objectlength: 2__proto__: Array(0)任何想法,我怎樣才能最佳地解決這個問題?
查看完整描述

1 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

在修改產品對象之前克隆它


   add(product) {

       const clone = {...product} 

       clone.qty = 1;

       clone.total = clone.price;

       this.cart.push(clone);

    }


查看完整回答
反對 回復 2023-08-24
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號