为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数组对象求和成为对象?

如何将数组对象求和成为对象?

千巷猫影 2023-07-06 16:38:18
我对这个案例有一个疑问输入:data = [{ number_1: 10, number_2: 20 },{ number_1: 15, number_2: 5 },{ number_1: 15, number_2: 35 },];输出:dataSum = { sum_number_1: 40, sum_number_2: 60 };我想询问我们可以使用的两种方法:array.reduce和array.forEach。我发现我们需要将数组转换为对象以进行输出。感谢您的帮助。
查看完整描述

4 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

初始架构Array.reduce实际上取决于您。


const data = [{

    number_1: 10,

    number_2: 20

  },

  {

    number_1: 15,

    number_2: 5

  },

  {

    number_1: 15,

    number_2: 35

  },

];


const res = data.reduce((acc, {

  number_1,

  number_2

}) => {

  acc.sum_number_1 += number_1;

  acc.sum_number_2 += number_2;


  return acc;

}, {

  sum_number_1: 0,

  sum_number_2: 0

})


console.log(res)

这是forEach

const data = [{

    number_1: 10,

    number_2: 20

  },

  {

    number_1: 15,

    number_2: 5

  },

  {

    number_1: 15,

    number_2: 35

  },

];


const res = {

  sum_number_1: 0,

  sum_number_2: 0

};


data.forEach(({

  number_1,

  number_2

}) => {

  res.sum_number_1 += number_1;

  res.sum_number_2 += number_2;

})


console.log(res)


查看完整回答
反对 回复 2023-07-06
?
跃然一笑

TA贡献1826条经验 获得超6个赞

这是你想要的吗?


data.reduce((acc, {number_1, number_2}) => {

    acc.sum_number_1 += number_1;

    acc.sum_number_2 += number_2;

    return acc;

},{sum_number_1: 0, sum_number_2: 0})


查看完整回答
反对 回复 2023-07-06
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

您可以采用动态方法来汇总对象的所有属性。


const

    data = [{ number_1: 10, number_2: 20 }, { number_1: 15, number_2: 5 }, { number_1: 15, number_2: 35 }],

    result = data.reduce((r, o) => {

        Object.entries(o).forEach(([k, v]) => r[k] = (r[k] || 0) + v)

        return r;

    });


console.log(result);


查看完整回答
反对 回复 2023-07-06
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

尝试这样:


data = [

   { number_1: 10, number_2: 20 },

   { number_1: 15, number_2: 5 },

   { number_1: 15, number_2: 35 },

];


const reducer = (accumulator, currentValue) => {

  accumulator.sum_number_1 += currentValue.number_1;

  accumulator.sum_number_2 += currentValue.number_2;

  return accumulator;

};


console.log(data.reduce(reducer, { sum_number_1: 0, sum_number_2: 0 }));


使用reduce函数时,初始值被构造为要返回的最终对象。这些数字在回调函数中进行求和,然后返回结果。


查看完整回答
反对 回复 2023-07-06
  • 4 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信