Чистый способ сопоставления массива в node.js или JavaScript

Скажем, у меня есть функция и массив. Я хочу изменить массив, применив функцию к каждой записи в массиве. Функция НЕ меняет значение напрямую; он возвращает новое значение.

В псевдокоде

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

Но это оба кажутся немного неуклюжими. Стандартный блок "для" выглядит слишком многословным, а функция _.map повторно назначает весь массив, поэтому кажется неэффективным.

Как вы это сделаете?

Да, я знаю, что я слишком задумываюсь над этим:)

Ответы