สมมติว่าเรามีวัตถุสองอย่างนี้ −
const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 };
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุสองอย่างดังกล่าว
ฟังก์ชันควรรวมค่าของคุณสมบัติที่เหมือนกันเป็นคุณสมบัติเดียว ดังนั้น วัตถุสุดท้ายควรมีลักษณะดังนี้ −
const output = { a:14, b:12, c:18 };
หมายเหตุ - เพื่อความง่าย เราเพิ่งใช้วัตถุสองชิ้น แต่เราต้องเขียนฟังก์ชันของเราเพื่อให้สามารถรับวัตถุจำนวนเท่าใดก็ได้และเพิ่มค่าคุณสมบัติของวัตถุนั้น
ตัวอย่าง
const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 }; const sumObjectsByKey = (...objs) => { const res = objs.reduce((a, b) => { for (let k in b) { if (b.hasOwnProperty(k)) a[k] = (a[k] || 0) + b[k]; } return a; }, {}); return res; } console.log(sumObjectsByKey(obj1, obj2));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
{ a: 14, b: 12, c: 18 }