@SEOVirus

В чём прикол использования Map (и прочих подобных) в JS против for?

Часто вижу, что более молодые программисты используют только map (и прочие подобные) вместо for. Причём очень негодуют когда видят for, говорят, что это устаревшая техника и пережиток прошлого. При этом, map невозможно остановить, он будет проходить до конца массива, даже если тебе это не нужно. Но они походу лепят это просто для красоты или даже не понимают что пишут. Хотя иногда говорят: ну и что, главное что это более читабельно, а так это ерунда по нагрузке. При этом у них раз ерунда, два ерунда, а потом ерунда получается по производительности когда накапливается много такой ерунды.
Какое ваше мнение на этот счёт?
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 3
houseprog
@houseprog
Веб-разработчик
Функция все же несколько иная по типу действия и как следствие применимости, нежели чем for. Основное и самое главное отличие, это новый-независимый контекст работы с элементом массива при каждом проходе(функция обратного вызова), с моментальным сбором результатов в новый массив. Да, в for все это тоже можно организовать, но кода потребуется несколько больше, а тут получается очень кратко. И еще, при переборе массива, не нужно указывать индекс элемента массива, как это делается в for. В общем map действительно хорош, но применять его понятное дело надо там - где это уместно.

Также в условиях решения одинаковой задачи(простого перебора массива):
+ Быстрое написание кода
+ Код более читабелен, в том числе теми кто будет потом работать с вашим творением
Ответ написан
Aetae
@Aetae
Тлен
Всё должно быть к месту, очевидно.

Если нужна остановка цикла - можно использовать some, если нужен именно map с остановкой цикла - тут следует использовать for либо какую-нить либу, которая это умеет.

Если эти некие "они" с оверхедом используют обычный map там где должен быть прерван цикл или там где не нужно получения нового массива - они говнокодеры.
Если вы используете классический for там где идеально справился бы map - вы старпёр, бессмысленно раздувающий и усложняющий код.

А производительность надо оптимизировать там и только там, где надо оптимизировать производительность.
Ответ написан
fomenkogregory
@fomenkogregory
Юниор софтварный инженер
При этом, map невозможно остановить, он будет проходить до конца массива, даже если тебе это не нужно.

Во всех остальных случаях - методы лучше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы