Ответ 1
var arr = arr.map(fn);
_.map()
, вероятно, реализуется таким же образом.
Скажем, у меня есть функция и массив. Я хочу изменить массив, применив функцию к каждой записи в массиве. Функция НЕ меняет значение напрямую; он возвращает новое значение.
В псевдокоде
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 повторно назначает весь массив, поэтому кажется неэффективным.
Как вы это сделаете?
Да, я знаю, что я слишком задумываюсь над этим:)
var arr = arr.map(fn);
_.map()
, вероятно, реализуется таким же образом.