underscoreJS:使用_.each()来执行reduce(),map()等

时间:2015-03-23 21:27:40

标签: underscore.js

我参加了一个研讨会,讨论了如何使用_.each()来做_.reduce(),_。map()和_.filter()作为练习来更好地理解概念。

我甚至不确定这意味着什么,但我想知道是否有人可以为我清除这个问题?如何使用_.each()来执行_.reduce(),_。map()和_.filter()?

对不起,如果这是模糊的。

1 个答案:

答案 0 :(得分:1)

我们以_.map为例。 _.map迭代一个集合,在该集合上的每个项目上执行一个函数(iteratee),从iteratee的返回值中构建一个新数组。

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