我正在開發一個食品車功能,將產品添加到購物車中。我的購物車是數組類型,產品是帶有鍵值的對象。我面臨的問題是,每當我嘗試為相似的密鑰添加具有不同值的新產品時,它也會覆蓋舊產品的相同密鑰的值。根據我的理解,數組只是指向我的產品對象的引用,但我想知道解決此問題的最佳方法是什么?我的代碼結構如下:組件.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)任何想法,我怎樣才能最佳地解決這個問題?
如何使用 array.push() 函數復制數組而不重復鍵值?
富國滬深
2023-08-24 18:23:01