0xD34F, вернее вот так: коллбэк функция возвращает результат её выполнения, затем происходит пуш этого результата в массив acc и далее происходит возвращение результата в виде return acc.
Проход осуществляется один раз, т.к. массив arr - пустой массив
Сергей delphinpro, ок, я правильный вывод сделал?
Об этом речь: "коллбэк функция возвращает результат её выполнения, затем происходит пуш этого результата в массив acc и далее происходит возвращение результата в виде return acc.
Проход осуществляется один раз, т.к. массив arr - пустой массив"
aLeXxX_03, последнее утверждение не верно.
1. если массив пуст, то прохода вообще не будет. Вернется начальный вариант (второй параметр функции reduce)
2. Предположение что массив пуст тоже безосновательно. Какой масив вы туда передатите, такой и будет использован:
foo([]) - передали пустой
foo([1,2,3]) - передали не пустой
acc – это от слова accumulator, то есть накопитель. reduce проходит по массиву и в каждую последующую итерацию передает результат предыдущей. acc - это как раз накопленный результат предыдущих итераций, либо стартовое значение на первой итерации. return acc - это передача накопленного значения в следующую итерацию.
Алексей Уколов рекомендовал изучить как работает функция reduce, z присоединяюсь к его рекомендации.
Вам если с TS нужно разораться, это одно. Если понять как работает функция - это другое. Для второго достаточно разобрать тот вариант, который я вам предоставил. Как видите там нет никаких пустых массивов.
правильно понимаю: коллбэк функция возвращает результат её выполнения, затем происходит пуш этого результата в массив acc и далее происходит возвращение этого результата в виде return acc.
Проход осуществляется один раз, т.к. массив arr - пустой массив
Всё до последнего предложения верно. В документации есть не только подробное описание функции, но и примеры, перечитайте её ещё раз.
P. S. А если массив пуст, то и проход по нему произойдёт ноль раз, а не один.