Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript Tổng của hai đối tượng có cùng thuộc tính

Giả sử, chúng ta có hai đối tượng như sau -

const obj1 = {
   a:12, b:8, c:17
};
const obj2 = {
   a:2, b:4, c:1
};

Chúng tôi được yêu cầu viết một hàm JavaScript có hai đối tượng như vậy.

Hàm nên tính tổng các giá trị của các thuộc tính giống nhau thành một thuộc tính duy nhất. Do đó, đối tượng cuối cùng sẽ trông giống như thế này -

const output = {
   a:14, b:12, c:18
};

Lưu ý - Để đơn giản hơn, chúng tôi chỉ sử dụng hai đối tượng, nhưng chúng tôi bắt buộc phải viết hàm của mình sao cho nó có thể nhận vào bất kỳ số lượng đối tượng nào và thêm các giá trị thuộc tính của chúng.

Ví dụ

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{ a: 14, b: 12, c: 18 }