Javascript 理解reduce()行为

Javascript 理解reduce()行为,javascript,Javascript,我很难理解reduce()在以下情况下是如何工作的。非常感谢你的帮助 let order=[ {金额:1}, {金额:2}, {金额:3}, {金额:4} ]; //这将返回正确的结果:10 让total1=订单减少((总和,a)=>sum+a.amount,0); //这是南。为什么? 让total2=订单减少((a,b)=>a.金额+b.金额) let order=[ {金额:1}, {金额:2}, {金额:3}, {金额:4} ]; //这将返回正确的结果:10 让total1=订单减少

我很难理解reduce()在以下情况下是如何工作的。非常感谢你的帮助

let order=[
{金额:1},
{金额:2},
{金额:3},
{金额:4}
];
//这将返回正确的结果:10
让total1=订单减少((总和,a)=>sum+a.amount,0);
//这是南。为什么?
让total2=订单减少((a,b)=>a.金额+b.金额)
let order=[
{金额:1},
{金额:2},
{金额:3},
{金额:4}
];
//这将返回正确的结果:10
让total1=订单减少((总和,a)=>sum+a.amount,0);
//如果我们把a.数量换成a,那么我们就得到了正确的答案
让total2=订单减少((a,b)=>a+b.amount,0);

console.log(total2)
b.amount
是元素的金额(例如,1,2,3,4)
a.amount
不是一回事。它是
1.amount
2.amount
等。由于数字没有
amount
属性,您将得到
1.amount==未定义的
Reduce是:
Array.prototype.Reduce((累加器,数组中的元素)=>{},累加器的初始值)
,因为您永远不应该在没有初始值的情况下使用
Reduce,回调函数的结果必须具有与其第一个参数相同的类型。