为什么我的reduce函数中的累加器不采用回调的返回值?

用户名

我有一个对象数组,我想对整个数组的对象中的所有“ bps”值求和。

我的对象数组如下所示:

arr = [
    {
        date: "2017-06-14T14:00:00.000Z",
        bps: 2
    },
    ...
]

这是我的reduce函数:

arr.reduce((accum, currVal) => {
        console.log(accum.bps);
        console.log(currVal.bps);
        console.log(accum.bps + currVal.bps);
        return accum.bps + currVal.bps;
    }, {
        bps: 0
    });

根据已输出到控制台的内容,在reduce函数的第一次迭代之后,返回值0不会成为下一个迭代的累加器(它变为“未定义”)。为什么会这样,我的函数应该如何总结数组中的所有“ bps”值?

控制台显示的是

scripts.js:1024 0
scripts.js:1025 0
scripts.js:1026 0
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 1.95
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1024 undefined
scripts.js:1025 0
scripts.js:1026 NaN
scripts.js:1031 NaN
Jaromanda X

由于reduce只是将所有.bps值加在一起,因此您可以简单地将所有数组项映射到一个数字数组,然后将它们加在一起

arr.map(({bps}) => bps)
.reduce((a, b) => a + b);

甚至

arr.reduce((accum, {bps}) => accum + bps, 0);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么不能在.reduce()函数中将推入的结果返回到累加器?

在Python中返回累加器的函数

为什么我的arrow函数不返回值?

为什么减少累加器不返回预期的总和结果?

累加器在使`reduce`方法中返回未定义

函数不返回值,为什么?

如果该块从不更改累加器,为什么不减少返回初始值?

为什么我的减速累加器复位?

Array.prototype.reduce方法的回调中的累加器上的“ get”方法指的是什么?

为什么Clojure函数不返回值返回nil?

为什么setInterval()不返回函数的返回值?

为什么Array.prototype.reduce()不将空数组用作累加器?

为什么异步函数不返回值?

为什么这个简单的函数不返回值?

为什么此函数不返回值?

为什么我的main方法中的返回值不包含值?

如何循环和推送reduce函数的累加器?

Stream.reduce的累加器参数中通配符的目的是什么?

从函数中的回调返回值

为什么systemctl在NRPE检查中不返回值?

在Python中,我的函数不返回值

JavaScript闭包-帮助我理解为什么内部函数的返回值不返回

Javascript reduce-在多个变量中拆分累加器

为什么我无法在PHP中获得require_once函数的返回值?

为什么返回值在我的递归函数中变得未定义?

为什么不返回值?

为什么查询不返回值

为什么我的函数不返回值,但是如果使用print,它就可以工作?

为什么我无法在Selenium方法中返回值?