Skip to content

数组对象求和

数组对象求和问题,在项目中有时会遇到列表求和的情况,这里记录一下。

javascript
let list = [
  { id: 1, value1: 5, value2: 10, value3: 20 },
  { id: 2, value1: 15, value2: 10, value3: 50 },
  { id: 3, value1: 40, value2: 20, value3: 20 },
];

利用 reduce()和 Object.keys()

javascript
function mergeArr(arr, data) {
  let result = arr.reduce((acc, cur) => {
    Object.keys(acc).forEach((item) => (acc[item] += cur[item]));
    return acc;
  }, data);

  return result;
}

const data = { value1: 0, value2: 0, value3: 0 };
mergeArr(list, data); // {value1: 60, value2: 40, value3: 90}