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

时间:2012-03-15 23:20:24

标签: javascript node.js underscore.js

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

在伪代码中,

for (entry in array) {
    entry = function(entry);
}

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

for (var i = 0; i < arr.length; i++) {
    arr[i] = fn(i);
}

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

arr = _.map(arr, fn);

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

你会怎么做?

是的,我知道我在想这个:)

1 个答案:

答案 0 :(得分:25)

Array#map()方法。

var arr = arr.map(fn);

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