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