【发布时间】:2012-04-01 13:06:37
【问题描述】:
假设我有一个函数和一个数组。我想通过将函数应用于数组中的每个条目来修改数组。该函数不直接修改值;它返回一个新值。
在伪代码中,
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 函数重新分配整个数组,因此感觉效率低下。
你会怎么做?
是的,我知道我想多了 :)
【问题讨论】:
-
只需使用下划线功能,直到您确定这是性能问题。它非常易读和干净,所以除非它真的是一个问题,否则你的“效率低下的感觉”不应该阻止你继续处理更紧迫的问题:)
-
完全正确!尽管如此,我只是好奇。
标签: javascript node.js underscore.js