试图了解如何使用_.reduce
Trying to understand how to use _.reduce
我正在努力解决这个问题:使用_.reduce将数组中的所有值相乘。
以下是我的想法:
var product = _.reduce([1, 2, 3], function(x, y){ return x * y; }, 0);
= 9
这很近吗?我觉得我没有完全掌握reduce()。请帮忙。
您应该从对_.reduce
的调用中省略最后一个0
参数,或者将其替换为1
,这取决于您在提供空数组时想要实现的语义。
与其在回调中考虑变量x
和y
,不如将它们视为accumulator
和current
。在第一次传递中,"初始值"参数作为accumulator
传递,在随后的每次传递中,上一次传递的结果作为accumulator
提供。
您错误提供的0
会作为accumulator
的第一个值传递,因此后续的每次乘法也会产生0
。
幸运的是,reduce
的规范规定,如果省略该初始值参数,则所提供数组的第一个元素将处于accumulator
的初始值中,然后仅从第二个元素开始迭代。
如果不提供初始值,则数组中必须至少有一个元素。
相关文章:
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- 在javascript中使用reduce对数组中的变量求和
- 使用map/reduce计算总数
- 试图了解如何使用_.reduce
- 使用JavaScript's Reduce从对象数组创建数组
- Javascript如何使用高阶函数和Map/Reduce函数来汇总多个数组
- 使用JavaScript映射reduce从数组中删除项
- 可以在Javascript中使用reduce编写bigram(或ngram)函数
- 使用 .reduce() 对数字进行阶乘化
- 在 couchdb reduce 中使用“eval” - 这有多危险
- jQuery.queue() 与使用回调函数完成某事有何不同
- 使用 reduce 函数返回数组
- 使用 reduce 确定数组中最小数的索引
- 如果对象使用 reduce、forEach 或筛选器共享属性值,则合并 JSON 数组中的对象
- 如何在 Indesign 脚本中使用像 Array.reduce() 这样的高阶函数
- 使用 reduce fnt 而不是 map
- 使用用于在同一函数中命名函数的变量名称有何意义
- MongoDB使用Map Reduce插入来自其他集合的嵌入式文档
- 使用 reduce 在 Javascript 中构建过滤器函数
- coffeeescript:如何声明可以在Array.reduce中使用的私有函数