underscoreJS:使用 _.each() 来执行 reduce()、map() 等
underscoreJS: using _.each() to do reduce(), map() etc
我在一个研讨会上讨论了使用 _.each() 来执行 _.reduce()、_.map() 和 _.filter( ) 作为练习以更好地理解这些概念。
我什至不完全确定这是什么意思,但我想知道是否有人可以为我解决这个问题?如何使用 _.each() 来执行 _.reduce()、_.map() 和 _.filter()?
抱歉,如果这含糊不清。
我们以_.map
为例。 _.map
遍历一个集合,对该集合的每个项目执行一个函数 (iteratee),从被迭代对象的 return 值构建一个新数组。
_.map( [ 1, 2, 3 ], function ( val ) {
return val * 2;
});
输出[ 2, 4, 6 ]
要使用 _.each
重新创建 _.map 功能,您可以这样做:
function map ( arr, iteratee ) {
var newArray = [];
_.each( arr, function ( val ) {
newArray.push( iteratee( val ) );
}
return newArray;
}
你会像这样使用它:
map( [ 1, 2, 3 ], function ( val ) {
return val * 2;
});
我在一个研讨会上讨论了使用 _.each() 来执行 _.reduce()、_.map() 和 _.filter( ) 作为练习以更好地理解这些概念。
我什至不完全确定这是什么意思,但我想知道是否有人可以为我解决这个问题?如何使用 _.each() 来执行 _.reduce()、_.map() 和 _.filter()?
抱歉,如果这含糊不清。
我们以_.map
为例。 _.map
遍历一个集合,对该集合的每个项目执行一个函数 (iteratee),从被迭代对象的 return 值构建一个新数组。
_.map( [ 1, 2, 3 ], function ( val ) {
return val * 2;
});
输出[ 2, 4, 6 ]
要使用 _.each
重新创建 _.map 功能,您可以这样做:
function map ( arr, iteratee ) {
var newArray = [];
_.each( arr, function ( val ) {
newArray.push( iteratee( val ) );
}
return newArray;
}
你会像这样使用它:
map( [ 1, 2, 3 ], function ( val ) {
return val * 2;
});