Функция сворачивает массив слева направо, передавая результат callback в следующий вызов; это упрощённый reduce с явно заданным initial.
function reduce(array, callback, initial) {
Функция сворачивает массив слева направо, передавая результат callback в следующий вызов; это упрощённый reduce с явно заданным initial.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
function reduce(array, callback, initial) { let acc = initial for (let i = 0; i < array.length; i++) { acc = callback(acc, array[i], i) } return acc }
Ответ
Функция сворачивает массив слева направо, передавая результат callback в следующий вызов; это упрощённый reduce с явно заданным initial.
Например, для [1,2,3], сложения и initial=0 результат равен 6. В отличие от Array.prototype.reduce код не выбирает первый существующий элемент при отсутствии initial, не пропускает пустые позиции и не передаёт исходный массив четвёртым аргументом callback. Поэтому считать его полной копией стандартного reduce нельзя.