Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

JavaScript ผลรวมของสองอ็อบเจ็กต์ที่มีคุณสมบัติเหมือนกัน


สมมติว่าเรามีวัตถุสองอย่างนี้ −

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 }