首页 > 解决方案 > 如何在 JavaScript 中对两个数组数据求和

问题描述

如何将我的第一个数组的数据与其中的数组数据相加?

一

代码

这是我当前的代码,仅适用于第一个数组

calculateTotal: function(){
  var sum=0;
  for(var i=0;i<this.accounts.length;i++){
     sum += this.accounts[i].balance;
  }
  return sum;
},

我应该在这段代码中更改什么以获得我想要的结果?

标签: javascript

解决方案


您不仅需要balance属性,还需要添加数组balance中的每个属性。payments您可以使用 非常简洁地执行此操作reduce,将外部balance作为累加器的初始值传递:

const obj = {
  accounts: [{
    balance: 150000,
    payments: [{
        balance: 100000,
      },
      {
        balance: -200000,
      }
    ]
  }]
};
const total = obj.accounts.reduce((a, { balance, payments }) => (
  a + payments.reduce((accum, { balance }) => accum + balance, balance)
), 0);
console.log(total);

或者,以对象方法形式:

const obj = {
  calculateTotal() {
    return obj.accounts.reduce((a, { balance, payments }) => (
      a + payments.reduce((accum, { balance }) => accum + balance, balance)
    ), 0)
  },
  accounts: [{
    balance: 150000,
    payments: [{
        balance: 100000,
      },
      {
        balance: -200000,
      }
    ]
  }]
};
console.log(obj.calculateTotal());


推荐阅读