Saya tidak dapat menunjukkan halaman keranjang tempat produk terdaftar yang ditambahkan ke Keranjang oleh Pengguna. Saya memiliki dua array: Satu dengan detail produk.
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
}
],
Lain lagi dengan detail Produk Keranjang yang memiliki ID produk dan jumlah yang dipilih oleh pengguna saja.
cartProducts: [
{
productID: 1,
quantity: 5,
},
{
productID: 3,
quantity: 2,
}
]
Saya telah memfilter semua produk yang dipilih pengguna.
cartItemDetails() {
return this.productDetails.filter(
el => this.cartProducts.some(f => f.id === el.productID),
);
},
Fungsi ini memberikan detail produk dari productID 1 dan 3. Yang saya inginkan adalah array baru yang menambahkan atribut kuantitas array cartProducts ke array productDetails.
newArray: [
{
productID: 1,
productTitle: 'Product Title 1',
productPrice: 2000,
quantity:5
},
{
productID: 3,
productTitle: 'Product Title 3',
productPrice: 1000,
quantity:5
}
]
Saya harap saya sudah menjelaskan pertanyaan saya. Saya juga mencoba menyelesaikan masalah ini dengan metode peta javascript tetapi tidak berfungsi.
Salam,
sumber
Gunakan peta dan penyebaran objek untuk menggabungkan dua array:
sumber
Konversikan
productDetails
ke Peta (productDetailsMap
), menggunakan tombolproductID
sebagai.Iterasi
cartProducts
denganArray.map()
dapatkan produk saat ini dariproductDetailsMap
dengan ituproductID
, dan bergabung dengan menyebar ke objek baru.sumber
Anda dapat mencoba sesuatu yang mirip dengan ini:
Semoga ini membantu :)
sumber
Anda dapat menggunakan
Object.assign()
metode untuk menyalin pasangan nilai properti dari productDetails ke cartProducts setiap kali productID cocok:sumber
Anda dapat melakukan beberapa pemeriksaan nol jika diperlukan.
sumber
Inilah yang mengacaukan kode Anda di sini:
f
yang merupakancartProducts
item tidak memiliki propertiid
.Saya pikir yang Anda maksudkan adalah
f.productID
sebaliknya.Sekarang inilah cara untuk menambahkan
quantity
properti menggunakanmap
fungsi:sumber