javascript - 下面代码的输出是 NaN,为什么?

标签 javascript javascript-objects reduce

在这里,我尝试添加“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/

相关文章:

javascript - 如何使用数组变量更新对象值? (JavaScript)

javascript - 向同一对象的属性添加新值

eclipse - Hadoop Map Reduce 程序

javascript - 使用 Array.reduce() 时 Angular Typescript 类型错误

javascript - 'this' 在 Javascript 扩展类中返回未定义

javascript - 如何使用 jQuery 提取作为 AJAX 响应接收到的 JSON 数据并将其添加到 HTML 选择下拉列表中?

javascript - 数组和切片的奇怪行为

javascript - 错误 : Overlay loading automatically (bootstrap) (laravel 5. 2)

javascript - 使用箭头函数将数组缩减为对象

javascript - 使用 "reduce"乘以数字数组时出现未定义的输出