此代码可以正常使用
var arr = _.range(1,1000);
var parse = _.filter(arr, function(num) {return num%3===0 || num%5===0});
var sum = _.reduce(parse, function(memo, num){ return memo + num; }, 0) //233168
是否可以使用_.chain()函数清除此代码?我试过下面的代码,但它给出了一个Type错误。
var arr = _.range(1,1000);
var sum = _.chain(arr)
.filter(arr, function(num) {return num%3===0 || num%5===0})
.reduce(arr, function(memo, num){ return memo + num; }, 0)
.value();
答案 0 :(得分:6)
您只需要从arr
和_.chain()
中的每个函数中删除第一个参数(_.value()
)(因为它们现在从链中收集):< / p>
var arr = _.range(1,1000);
var sum = _.chain(arr)
.filter(function(num) {return num%3===0 || num%5===0})
.reduce(function(memo, num){ return memo + num; }, 0)
.value();
通过在range arguments
函数和{{1}之间拆分1
(即1000
和chain
),您也可以更简洁一点功能:
range
它有效,但我不确定这个最后一个在代码可读性方面是否是一个好主意。