首页 > 解决方案 > Javascript - 如何对这样一个数组中的值求和?

问题描述

我有这样一个数组:

    let array = {
        [1]: {
          name: 'test 1',
          count: 5  
        },
        [2]: {
            name: 'test 2',
            count: 3  
        }
    }

如何对“计数”列中的值求和?来自简单数组的示例不起作用。我目前有这样的循环。它可以做得更好吗?

    let sum = 0
    Object.entries(array).forEach(([key, val]) => {
        sum += val.count
    });

标签: javascript

解决方案


利用reduce

let array = { 1: { name: "test 1", count: 5, }, 2: { name: "test 2", count: 3, }, };

total = Object.values(array).reduce((t, { count }) => t + count, 0); //t accumulator accumulates the value from previous calculation 
console.log(total);

如果你想forEach在你的方法中使用循环,Object.values()因为你只需要值来计算计数的总和

let array = {
  1: { name: "test 1", count: 5 },
  2: { name: "test 2", count: 3 },
};

let sum = 0;
Object.values(array).forEach(({ count }) => {
  sum += count;
});
console.log(sum);


推荐阅读