Метод splice - удаление и добавление элементов в массив на JavaScript
Метод splice
удаляет или добавляет
элементы в массив. Можно только удалять элементы,
только добавлять или делать и то и другое
одновременно. Метод очень универсальный и
сложный для понимания.
Метод изменяет сам массив и возвращает при
этом массив удаленных элементов.
Первым параметром метод принимает номер элемента
массива, который нужно удалить. Вторым параметром
- сколько элементов массива следует удалить.
Если его поставить в 0
- то элементы удалены
не будут (только добавлены новые).
Дальше через запятую идут элементы, которые
нужно добавить в массив (являются необязательными
параметрами). Эти элементы добавятся вместо
удаленных элементов массива.
Если удаления не было (когда второй параметр
0
) - элементы вставятся в массив начиная
с той позиции, которая указана первым параметром
метода. Первый параметр может иметь отрицательное
значение. В этом случае отсчет позиции начнется
не с начала массива, а с конца. Последний элемент
при этом будет иметь номер -1
.
Синтаксис
массив.splice(откуда удаляем, сколько удаляем, [вставить], [вставить]...);
Пример
Давайте удалим три элемента, начиная с первого:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
Результат выполнения кода:
['a', 'e']
Пример
Давайте выведем массив удаленных элементов:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
Результат выполнения кода:
['b', 'c', 'd']
Пример
Давайте сначала удалим элемент с номером
2
, а потом вместо него вставим еще
три новых элемента:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
Результат выполнения кода:
['a', 'b', '1', '2', '3', 'd', 'e']
Пример
Давайте теперь ничего не будем удалять, но
на позицию 2
, вставим еще три новых
элемента:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
Результат выполнения кода:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
Пример . Отрицательное значение
Давайте удалим предпоследний элемент:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
Результат выполнения кода:
['a', 'b', 'c', 'e']