我需要在对象demonstrativoIr中对数组里面的所有valorReal值求和,有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
}))
答案 0 :(得分:1)
您只需在最后一次迭代中总结最后两个元素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});