pcc*_*cse 5 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
Run Code Online (Sandbox Code Playgroud)
是否可以使用_.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();
Run Code Online (Sandbox Code Playgroud)
你只需要删除的第一个参数(arr从你们每个人都在里面的功能)_.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();
Run Code Online (Sandbox Code Playgroud)
你也可以通过拆分函数和函数之间的range arguments(ie 1和1000)来更简洁一些:chainrange
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();
Run Code Online (Sandbox Code Playgroud)
它有效,但我不确定这个最后一个在代码可读性方面是否是一个好主意.
| 归档时间: |
|
| 查看次数: |
3974 次 |
| 最近记录: |