Большинство примеров использования метода reduce() можно легко переписать с помощью цикла for. И тестирование на JSPerf показывает, что reduce() обычно на 60% -75% медленнее, в зависимости от операций, выполняемых внутри каждой итерации.
Есть ли какая-то настоящая причина использовать reduce(), а не возможность писать код в "функциональном стиле"? Если вы можете получить прирост производительности на 60%, написав еще немного кода, зачем вам когда-либо использовать reduce()?
EDIT: Фактически, другие функциональные методы, такие как forEach() и map(), показывают сходную производительность, по меньшей мере на 60% медленнее, чем простые для циклов.
Здесь ссылка на тест JSPerf (с вызовами функций): forloop vs forEach