Javascript 对象。如果未返回正确的值,请减少

Javascript 对象。如果未返回正确的值,请减少,javascript,Javascript,我需要对数组demonstrativo中的所有valorReal值求和,在对象demonstrativoIr中,有25个对象的valorReal值在300左右,返回的和值是416。不知道我做错了什么 这是减少 .subscribe((data: any[]) => { this.movimento = data.reduce((a,b)=> ({ ...a, dataMovimento: a.dataMovimento, v

我需要对数组demonstrativo中的所有valorReal值求和,在对象demonstrativoIr中,有25个对象的valorReal值在300左右,返回的和值是416。不知道我做错了什么

这是减少

.subscribe((data: any[]) => {
      this.movimento = data.reduce((a,b)=> ({
        ...a,
        dataMovimento: a.dataMovimento,
        valor: a.valor + b.valor,
        valorReal: a.demonstrativoIr.demonstrativo[0].valorReal + b.demonstrativoIr.demonstrativo[0].valorReal 
      }))
您只需在最后一次迭代中总结最后两个元素a和b的价值,之前的所有内容都将被忽略。您可以将valorReal放在蓄能器内:

  this.movimento = data.reduce((acc, el) => ({
    ...acc,
    valor: acc.valor + el.valor,
    // Take the accumulated value here:
    valorReal: acc.valorReal + el.demonstrativoIr.demonstrativo[0].valorReal 
  // Ensure it is 0 and not undefined at the first iteration:
  }), {valor: 0, valorReal: 0});

谢天谢地,数学其实很好,但acc和el的面额让我更好地理解了它是如何工作的,我也不知道有初始值。祝你愉快day@daniel很高兴能帮忙: