Метод Array.splice() – это универсальный метод для вставки или удаления эле_ ментов массива. Он изменяет массив на месте, а не возвращает новый массив, как это делают методы slice() и concat(). Обратите внимание: splice() и slice() имеют очень похожие имена, но выполняют разные операции.
Метод splice() может удалять элементы из массива, вставлять новые элементы в массив или выполнять обе операции одновременно. Элементы массива при не_
136 Глава 7. Объекты и массивы
обходимости смещаются, чтобы после вставки или удаления образовывалась не_ прерывная последовательность. Первый аргумент splice() задает позицию в мас_ сиве, с которой начинается вставка и/или удаление. Второй аргумент задает ко_ личество элементов, которые должны быть удалены (вырезаны) из массива. Если второй аргумент опущен, удаляются все элементы массива от начального до кон_ ца массива. Метод splice() возвращает массив удаленных элементов или (если ни один из элементов не был удален) пустой массив. Например:
var a = [1,2,3,4,5,6,7,8];
a.splice(4);
// Возвращает [5,6,7,8]; a
равно [1,2,3,4]
a.splice(1,2);
//
Возвращает [2,3];
a равно [1,4]
a.splice(1,1);
//
Возвращает [4]; a
равно
[1]
Первые два аргумента splice() задают элементы массива, подлежащие удале_ нию. За этими аргументами может следовать любое количество дополнительных аргументов, задающих элементы, которые будут вставлены в массив, начиная с позиции, заданной первым аргументом. Например:
var a = [1,2,3,4,5];
a.splice(2,0,'a','b');
//
Возвращает
[]; a равно [1,2,'a','b',3,4,5]
a.splice(2,2,[1,2],3);
//
Возвращает
['a','b']; a равно [1,2,[1,2],3,3,4,5]
Обратите внимание, что, в отличие от concat(), метод splice() не разбивает на от_ дельные элементы вставляемые аргументы_массивы. То есть если методу переда_ ется массив для вставки, он вставляет сам массив, а не элементы этого массива.