在这里,我尝试添加“order_total”属性。我已经使用了reduce方法,如果只尝试数组,相同的代码可以正常工作,但是当我在对象数组上实现时,它会产生NaN。
var user = {
id: 16,
username: 'smith',
email: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="60130d09140820070d01090c4e030f0d" rel="noreferrer noopener nofollow">[email protected]</a>',
order: [
{
id: 71,
order_number: 'DCT-123',
order_total: 12000,
},
{
id: 71,
order_number: 'DCT-345',
order_total: 7000,
},
{
id: 71,
order_number: 'DCT-321',
order_total: 2000,
}
]
};
var result = user.order.reduce(function(a, b) {
return a.order_total + b.order_total;
});
console.log(result);
最佳答案
reduce回调中的参数a
是累加器,而不是对象的属性。请参阅here了解有关减少的更多信息
var user = {
id: 16,
username: 'smith',
email: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3e4d53574a567e59535f5752105d5153" rel="noreferrer noopener nofollow">[email protected]</a>',
order: [
{
id: 71,
order_number: 'DCT-123',
order_total: 12000,
},
{
id: 71,
order_number: 'DCT-345',
order_total: 7000,
},
{
id: 71,
order_number: 'DCT-321',
order_total: 2000,
}
]
};
var result = user.order.reduce(function(a, b) {
return a+b.order_total;
},0);
console.log(result);
关于javascript - 下面代码的输出是 NaN,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372849/