Я определил свою собственную функцию карты, которая выполняет ту же задачу, что и метод объектов Array. (Я делаю это, чтобы учиться). Код ниже.Как определить карту с точки зрения ForEach
Я хотел бы использовать метод Array forEach внутри моего собственного определения карты, но я что-то теряю концептуально. Как я смогу сделать это, используя forEach?
Работа без использования Foreach
// transforming with map
// NOTE: map is already defined in JavaScript
function map(array, transformation) {
var mapped = [];
for (var index in array) {
var currentElement = array[index];
var transformedElement = transformation(currentElement);
mapped.push(transformedElement);
}
return mapped;
}
Моя попытка использования Foreach
function mapForEach(array, transformation) {
var mapped = [];
array.forEach(transformation(currentVal, index, array, mapped));
return mapped;
}
function transformation(person, index, array, accumulator) {
var name = person.name;
accumulator.push(name);
}
'array.forEach (преобразование (currentVal, index, array, mapping));' - вы здесь * вызываете * преобразование здесь и передаете его возвращаемое значение (none) в forEach. Возможно, вам понадобится использовать Function.bind, если вы хотите получить доступ к «сопоставленному» внутри цикла без использования закрытия. – Katana314