วิธีทำ
ใช้ map() ร่วมกับ find()
ตัวอย่างโค้ด
var details1 = [
{ productDetails: { isSold: true, productId:101 } },
{ productDetails: { isSold: true, productId:103 } }
]
var details2 = [
{ productDetails: { isSold: false, productId:101 } }
]
var details3 = details1.map(details1Object=>{
var newObject = details2.find(obj=>obj.productDetails.productId === details1Object.productDetails.productId)
return newObject ? newObject : details1Object
})
console.log(details3)
วิธีรัน
node fileName.js
ชื่อไฟล์ demo183.js
ผลลัพธ์
PS C:\Users\Amit\javascript-code> node demo183.js
[
{ productDetails: { isSold: false, productId: 101 } },
{ productDetails: { isSold: true, productId: 103 } }
]
คำอธิบาย
details1.map() วนลูปแต่ละ object ใน details1details2.find() หา object ใน details2 ที่ productId ตรงกัน
ถ้าพบ (newObject ไม่ใช่ undefined) ใช้ object จาก details2 (isSold: false)
ไม่พบ ใช้ object เดิมจาก details1