Size: a a a

2021 May 16

AF

Alexey Fedotov in javascript_ru
В случае циклов, никаких специализированных оптимизированных решений он задействовать не сможет, потому что код гарантий не даёт
источник

К

Константин in javascript_ru
Эм, на самом деле нет
источник

К

Константин in javascript_ru
map всегда был тупой
источник

К

Константин in javascript_ru
И остался
источник

AF

Alexey Fedotov in javascript_ru
тот же .map() в отличие от for (let i = 0; ...) arr.push(i) гарантирует, что на входе будет массив n элементов, на выходе будет массив n элементов (можно оптимизировать выделение памяти), и что для каждого элемента переданная функция будет вызвана ровно один раз
источник

К

Константин in javascript_ru
Кто-то не тестил и говорит
источник

К

Константин in javascript_ru
Надежды, ага
источник

AF

Alexey Fedotov in javascript_ru
Это не наша проблема, это проблема разработчиков V8
источник

К

Константин in javascript_ru
Посмотри на реализацию, и станет всё ясно
источник

К

Константин in javascript_ru
Тормоза у мапы - вызов делегата
источник

К

Константин in javascript_ru
В этом и проблема ВСЕХ перебирающих методов
источник

К

Константин in javascript_ru
Что там лишний вызов в рантайм
источник

К

Константин in javascript_ru
В v8 это ещё быстро
источник

К

Константин in javascript_ru
А в JSC
источник

К

Константин in javascript_ru
SpiderMonkey ну как бы, не особо
источник

AF

Alexey Fedotov in javascript_ru
Вызов лишнего делегата как раз проблемой не является, потому что он микроскопически мал. Давай посмотрим на код, в котором я предложил использовать .map вместо циклов
источник

AF

Alexey Fedotov in javascript_ru
const ids = [];

if (likes) {
           for (let j = 0; j < likes.length; j++) {
               const like = likes[j].querySelector('[data-el-id]');
               const id = like.dataset.elId;
               ids.push(id);
           }
       }
источник

DM

Denys Mikhalenko in javascript_ru
источник

AF

Alexey Fedotov in javascript_ru
Это решается вот так. likes.map(l => l.dataset.elId)
источник

DM

Denys Mikhalenko in javascript_ru
есть идеи, почему map медленнее?
источник