Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

JavaScript Tổng hai đối tượng 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 ta cần viết hàm JavaScript nhận vào hai đối tượng này.

Hàm cộng giá trị của các thuộc tính giống nhau thành một thuộc tính duy nhất. Đối tượng cuối cùng trông như:

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

Lưu ý: Chỉ dùng hai đối tượng cho đơn giản, nhưng hàm phải nhận bất kỳ số lượng đối tượng nào và cộng 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));

Kết quả

Kết quả in ra console:

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