javascript - _.chain - 下划线 JS

标签 javascript underscore.js

这段代码工作正常

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() 函数来清理这段代码?我尝试在下面编写代码,但它给出了类型错误。

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();

最佳答案

您只需从 _.chain()_.value( )(因为它们现在是从链中收集的):

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(即 11000)来做得更简洁>chain 函数和 range 函数:

var sum = _.chain(1).range(1000)
    .filter(function(num) {return num%3===0 || num%5===0})
    .reduce(function(memo, num){ return memo + num; }, 0)
    .value();

它有效,但我不确定最后一个在代码可读性方面是否是个好主意。

关于javascript - _.chain - 下划线 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25944870/

相关文章:

javascript - 从抽奖系统中获取值(value)

javascript - 尝试使用 underscore.js 获取空 friend 从解析和渲染中提取数据

javascript - 如何将 ejs 模板与下划线结合使用?

javascript - Backbone.js 事件未触发

javascript - underscore.js 解除绑定(bind)

javascript - 下划线 : group by date while calculating total of another field

javascript - 在 Symfony 2 项目中使用 JQuery

javascript - For 循环仅更改第一项的样式

javascript - 对 JSON 数组对象进行排序

javascript - 未捕获的类型错误 : Cannot read property 'createMediaElementSource' of null