Ich sehe die Warenkorbseite nicht mehr, auf der die Produkte aufgelistet sind, die von Benutzern zum Warenkorb hinzugefügt wurden. Ich habe zwei Arrays: Eines mit den Produktdetails.
productDetails: [
{
productID: 1,
productTitle: 'Product Title 1',
productPrice: 2000
},
{
productID: 2,
productTitle: 'Product Title 2',
productPrice: 5000
},
{
productID: 3,
productTitle: 'Product Title 3',
productPrice: 1000
},
{
productID: 4,
productTitle: 'Product Title 4',
productPrice: 10000
}
],
Eine andere mit Warenkorb-Produktdetails, bei denen die Produkt-ID und die Menge nur von Benutzern ausgewählt wurden.
cartProducts: [
{
productID: 1,
quantity: 5,
},
{
productID: 3,
quantity: 2,
}
]
Ich habe alle vom Benutzer ausgewählten Produkte gefiltert.
cartItemDetails() {
return this.productDetails.filter(
el => this.cartProducts.some(f => f.id === el.productID),
);
},
Diese Funktion gibt die Produktdetails von productID 1 und 3 an. Ich möchte ein neues Array, das das Mengenattribut des cartProducts-Arrays zum productDetails-Array hinzufügt.
newArray: [
{
productID: 1,
productTitle: 'Product Title 1',
productPrice: 2000,
quantity:5
},
{
productID: 3,
productTitle: 'Product Title 3',
productPrice: 1000,
quantity:5
}
]
Ich hoffe ich habe meine Fragen klargestellt. Ich versuche auch, dieses Problem mit der Map-Javascript-Methode zu lösen, aber es funktioniert nicht.
Grüße,
quelle
Verwenden Sie Map und Object Spread, um die beiden Arrays zu kombinieren:
quelle
Konvertieren Sie das
productDetails
in eine Map (productDetailsMap
), indem Sie dasproductID
als Schlüssel verwenden.Iterieren Sie das
cartProducts
mit,Array.map()
um das aktuelle ProduktproductDetailsMap
zu erhaltenproductID
, und verschmelzen Sie es, indem Sie es in ein neues Objekt ausbreiten .quelle
Sie können etwas Ähnliches ausprobieren:
Hoffe das hilft :)
quelle
Mit der
Object.assign()
Methode können Sie Eigenschafts-Wert-Paare aus productDetails in cartProducts kopieren, wenn die productID übereinstimmt:quelle
Bei Bedarf können Sie einige Nullprüfungen durchführen.
quelle
Dies ist, was Ihren Code hier durcheinander bringt:
f
Das ist eincartProducts
Artikel hat keine Eigenschaftid
.Ich denke, was du gemeint hast, ist
f.productID
stattdessen.Hier ist eine Möglichkeit, die
quantity
Eigenschaft mithilfe dermap
Funktion hinzuzufügen :quelle