Методы массивов в JavaScript мутирующие и немутирующие
Методы массивов в JavaScript
JavaScript предоставляет мощный набор методов для работы с массивами. Все они делятся на мутирующие (изменяют исходный массив) и немутирующие (возвращают новый массив или значение, не затрагивая оригинал).
Мутирующие методы массива
Эти методы изменяют сам массив:
Метод | Описание |
---|---|
push() | Добавляет элемент в конец |
pop() | Удаляет последний элемент |
shift() | Удаляет первый элемент |
unshift() | Добавляет элемент в начало |
splice() | Удаляет, заменяет или вставляет элементы по индексу |
sort() | Сортирует массив (по умолчанию как строки, можно передать функцию сравнения) |
reverse() | Меняет порядок элементов на противоположный |
fill() | Заполняет массив определённым значением |
copyWithin() | Копирует элементы внутри массива |
Пример splice()
const arr = [1, 2, 3, 4];
arr.splice(1, 2); // Удаляет 2 элемента с индекса 1
console.log(arr); // [1, 4]
Немутирующие методы массива
Эти методы не изменяют оригинальный массив, а возвращают новое значение:
Метод | Описание |
---|---|
slice() | Возвращает подмассив |
concat() | Объединяет массивы |
map() | Создаёт новый массив, применяя функцию к каждому элементу |
filter() | Фильтрует элементы по условию |
find() | Возвращает первый элемент, подходящий под условие |
findIndex() | Возвращает индекс первого подходящего элемента |
every() | Проверяет, удовлетворяют ли все элементы условию |
some() | Проверяет, удовлетворяет ли хотя бы один элемент условию |
reduce() | Преобразует массив в одно значение |
includes() | Проверяет наличие значения |
indexOf() | Возвращает индекс первого совпадения |
lastIndexOf() | Возвращает индекс последнего совпадения |
flat() | "Разворачивает" вложенные массивы |
join() | Преобразует массив в строку |
toSorted() | Новый способ сортировки без мутации массива (ES2023) |
Пример map()
const nums = [1, 2, 3];
const doubled = nums.map(n => n * 2);
console.log(doubled); // [2, 4, 6]
Важно:
Методы sort()
, reverse()
, splice()
изменяют исходный массив. Если хотите сохранить оригинал, предварительно делайте копию: const sorted = [...array].sort()
Вывод
- Используйте мутирующие методы осознанно, когда изменение массива допустимо.
- Отдавайте предпочтение немутирующим методам при необходимости сохранить оригинал.