Очень жаль, когда люди не могут уважительно передать сообщение.

Я полностью согласен с тем, что вам не следует микрооптимизировать свой код, однако я думаю, что догматическая функциональность также может быть вредной. Если вы хотите быть догматически функциональным, вы также можете использовать язык вроде ReasonML или Elm.

Я думаю, что также важно знать некоторые оптимизации движка JavaScript. В chrome или node.js создание массива без элементов делает массив «дырявым», и вы теряете часть возможностей оптимизации V8: https://v8project.blogspot.com/2017/09/elements-kinds-in-v8. html?m=1.

Вероятно, это нормально, поскольку карта на самом деле возвращает новый массив, который можно оптимизировать, но есть что-то изначально неправильное в написании кода, который, как вы знаете, будет медленным ради того, чтобы быть «функциональным». Во многих случаях итерация «функционального» пути с фильтром, отображением и уменьшением сделает ваш код намного чище и, следовательно, его будет легче читать. Обычно мы тратим больше времени на чтение кода, чем на его написание, поэтому в этом есть огромное преимущество: оправданность.

Однако я бы сказал, что `Array(100).fill().map((_, i) =› i)` не очень удобочитаем и, возможно, лишь немного проще в написании.

Я думаю, что настоящая быстрая победа здесь — просто использовать lodash. Вам не нужно микрооптимизировать свой код, но вы также не должны явно писать более медленный код только для того, чтобы быть более «функциональным», если только нет какого-то серьезного преимущества, такого как читабельность.