在node.js或JavaScript中映射数组的干净方法

Eri*_*ric 14 javascript node.js underscore.js

假设我有一个函数和一个数组.我想通过将函数应用于数组中的每个条目来修改数组.该函数不直接修改该值; 它返回一个新值.

在伪代码中

for (entry in array) {
    entry = function(entry);
}
Run Code Online (Sandbox Code Playgroud)

有几种方法可以解决这个问题:

for (var i = 0; i < arr.length; i++) {
    arr[i] = fn(i);
}
Run Code Online (Sandbox Code Playgroud)

或者,因为我使用node.js并且内置了下划线:

arr = _.map(arr, fn);
Run Code Online (Sandbox Code Playgroud)

但这看起来有点笨重.标准的"for"块感觉过于冗长,_. map函数重新分配整个数组,因此感觉效率低下.

你会怎么做?

是的,我知道我正在思考这个:)

fen*_*ent 25

所述阵列#地图()方法.

var arr = arr.map(fn);
Run Code Online (Sandbox Code Playgroud)

_.map() 可能以相同的方式实现.

  • 如果你正在使用Node.js,你就知道你正在使用什么JS解释器,因此你知道来自ECMAScript5的东西已经实现了...其中包括Array#map :) (2认同)