PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

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

Массивы и структуры данных

Немутирующие методы массива возвращают новый массив или значение, не изменяя исходный. Их предпочитают в иммутабельном коде.

Немутирующие методы

Трансформация (возвращают новый массив)

  • map — преобразует элементы.
  • filter — отбирает по условию.
  • slice — копия части.
  • concat — объединение.
  • flat / flatMap — «разворачивает» вложенность.

Перебор/поиск (возвращают значение)

  • reduce — сворачивает в одно значение.
  • find / findIndex — первый подходящий элемент/индекс.
  • some / every — булев результат.
  • includes / indexOf — поиск значения.
  • join — строка из элементов.

Новые иммутабельные (ES2023)

  • toSorted, toReversed, toSpliced, with — копии вместо мутации.
const arr = [3, 1, 2];
const sorted = arr.toSorted(); // arr не изменён
const mapped = arr.map((x) => x * 2); // новый массив

Немутирующие против мутирующих

Мутирующие (push, pop, splice, sort, reverse) меняют исходный массив. Немутирующие — нет.

Зачем это нужно

В React/Redux состояние обновляют иммутабельно, поэтому используют немутирующие методы или копию.

Коротко для собеседования

Немутирующие: map, filter, slice, concat, reduce, find, some, every, includes, flat, а также новые toSorted/toReversed/with. Возвращают новый результат, не трогая исходный массив. Предпочтительны в иммутабельном коде (React/Redux).

Другие вопросы раздела