Код Middle Реализация с нуля обновлено

Array.prototype.reduce своими руками

Условие

Реализуй myReduce(arr, fn, initial). Без initial первый элемент становится аккумулятором; на пустом массиве без initial - TypeError.

Что проверяют тесты

  • с начальным

  • без начального

  • initial undefined считается переданным

  • пустой без initial бросает

Как подойти

Ключевой нюанс - определить факт передачи initial через arguments.length / rest.length, а не через сравнение с undefined. Дальше обычный цикл со стартом 0 или 1.

Подсказки: 2
  1. «Начальное значение передано» и «начальное значение не undefined» - разные вещи.
  2. Используй ...rest или arguments.length, чтобы это различить.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.