Метод splice удаляет или добавляет элементы в массив. Можно только удалять элементы, только добавлять или делать и то и другое одновременно. Метод очень универсальный и сложный для понимания.

Метод изменяет сам массив, и возвращает при этом массив удаленных элементов.

Первым параметром идет номер элемента массива, который нужно удалить.

Вторым параметром - сколько элементов массива следует удалить. Если его поставить в 0 - то элементы удалены не будут (только добавлены новые).

Дальше через запятую идут элементы, которые нужно добавить в массив (являются необязательными параметрами). Эти элементы добавятся вместо удаленных элементов массива.

Если удаления не было (когда второй параметр 0) - элементы вставятся в массив начиная с той позиции, которая указана первым параметром метода.

Первый параметр может иметь отрицательное значение. В этом случае отсчет позиции начнется не с начала массива, а с конца. Причем, последний элемент имеет номер '-1', предпоследний - '-2' и так далее.

Метод возвращает массив удаленных элементов.

Синтаксис

массив.splice(откуда удаляем, сколько элементов удаляем, [вставить элемент], [вставить элемент]...);

Примеры

Пример

В данном примере из массива будут удалены элементы со второго, 3 штуки (это 'c', 'd' и 'e'):

var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
arr.splice(2, 3);
console.log(arr);

Результат выполнения кода:

['a', 'b', 'f']

Пример

В данном примере из массива будут удалены со второго, 3 штуки (это 'c', 'd' и 'e') и записаны в переменную del:

var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
var del = arr.splice(2, 3);
console.log(del);

Результат выполнения кода:

['c', 'd', 'e']

Пример

В данном примере сначала будет удален 3 элемент, а потом вместо него вставлено еще 2 новых элемента ('1' и '2'):

var arr = ['a', 'b', 'c', 'd'];
arr.splice(2, 1, '1', '2');
console.log(arr);

Результат выполнения кода:

['a', 'b', '1', '2', 'd']

Пример

В данном примере после 3-го элемента будут добавлены еще 2 элемента (так как вторым параметром указан 0, то удаления не будет):

var arr = ['a', 'b', 'c', 'd'];
arr.splice(2, 0, '1', '2');
console.log(arr);

Результат выполнения кода:

['a', 'b', 'c', '1', '2', 'd']

Пример . Отрицательное значение

В данном примере из массива будет удален предпоследний элемент 'e' (его номер -2):

var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
arr.splice(-2, 1);
console.log(arr);

Результат выполнения кода:

['a', 'b', 'c', 'd', 'f']