สมมติว่าเรามีวัตถุสองอย่างนี้ −
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 }