我正在開(kāi)發(fā)一個(gè)食品車(chē)功能,將產(chǎn)品添加到購(gòu)物車(chē)中。我的購(gòu)物車(chē)是數(shù)組類(lèi)型,產(chǎn)品是帶有鍵值的對(duì)象。我面臨的問(wèn)題是,每當(dāng)我嘗試為相似的密鑰添加具有不同值的新產(chǎn)品時(shí),它也會(huì)覆蓋舊產(chǎn)品的相同密鑰的值。根據(jù)我的理解,數(shù)組只是指向我的產(chǎn)品對(duì)象的引用,但我想知道解決此問(wèn)題的最佳方法是什么?我的代碼結(jié)構(gòu)如下:組件.tsthis.cartService.add(product); // <- This Product contains key modifier: ["abc","def"]購(gòu)物車(chē)服務(wù).tsadd(product) { product.qty = 1; product.total = product.price; this.cart.push(product);}因此,每次我使用不同的修飾鍵(例如 -> 修飾符:["dfg", "gght"])將產(chǎn)品推入購(gòu)物車(chē)時(shí),它都會(huì)使用所有修飾鍵的新值覆蓋現(xiàn)有的 this.cart 數(shù)組對(duì)象。以下是我的 this.cart 數(shù)組中的兩個(gè)產(chǎn)品的記錄方式:(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)任何想法,我怎樣才能最佳地解決這個(gè)問(wèn)題?
如何使用 array.push() 函數(shù)復(fù)制數(shù)組而不重復(fù)鍵值?
富國(guó)滬深
2023-08-24 18:23:01