Ответ вслух Junior Объекты и массивы обновлено

Методы массива

Вопрос

Какие методы массива мутируют исходный, а какие нет?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Мутирующие: push, pop, shift, unshift, splice, sort, reverse, fill, copyWithin. Возвращающие новый массив: map, filter, slice, concat, flat, flatMap и новые неразрушающие двойники toSorted, toReversed, with.

Что должно прозвучать в ответе

  • мутируют: push, pop, shift, unshift, splice, sort, reverse, fill

  • возвращают новый: map, filter, slice, concat, flat, with, toSorted

  • sort сортирует по строковому представлению без компаратора

  • reduce - самый общий: через него выражаются map и filter

  • find останавливается на первом совпадении, filter проходит всё

  • forEach не умеет прерываться и игнорирует возврат

Что могут спросить следом

  • Как отсортировать числа по убыванию
  • Чем отличаются at(-1) и [length-1]
  • Как сгруппировать массив объектов по полю

Разбор

Мутирующие: push, pop, shift, unshift, splice, sort, reverse, fill, copyWithin. Возвращающие новый массив: map, filter, slice, concat, flat, flatMap и новые неразрушающие двойники toSorted, toReversed, with.

Подвохи: sort без компаратора сортирует по строкам ([10, 9] → [10, 9]), sort и reverse мутируют - в React это ломает состояние. forEach нельзя прервать, для этого for...of, some или find. reduce - самый общий метод, через него выражаются остальные, но читается хуже: группировку через него пишут, сумму - нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.