JavaScript метод splice()

Определение и применение

JavaScript метод splice() позволяет изменить содержимое массива за счёт удаления существующих элементов, и/или добавления новых элементов в массив. Работу метода показывает пример «Чем удалённые элементы отличаются от изменённого массива».

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.Array.splice
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
splice✓1✓12✓1✓4✓1✓18✓4✓10.1✓1✓1.0✓4.4✓1

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
array.splice();
array.splice(start);
array.splice(start, deleteCount);
array.splice(start, deleteCount, element1, element2);

Спецификация

ECMAScript: Array.prototype.splice.

Значения параметров

Параметры splice()
Параметр Описание
start Целое число, определяющее индекс массива, с которого будут удалены из массива и/или добавлены в массив элементы. Допускается использование отрицательных значений, в этом случае индекс с которого будет вызван метод будет рассчитан по следующей формуле: length (длина массива) + start. При вызове без аргументов массив не изменяется. При явно переданном undefined начало равно 0.
deleteCount Целое число, определяющее количество удаляемых из массива элементов, начиная с индекса указанного в start. Если deleteCount равен 0, то элементы не удаляются. Если значение deleteCount больше количества оставшихся элементов в массиве, то все оставшиеся элементы массива будут удалены. Необязательное значение. Отрицательное значение или явно переданный undefined означает 0; если аргумент опущен при заданном start, удаляются элементы до конца.
element1, element2, … Элемент, или элементы, которые будут добавлены к массиву. Индекс массива по которому будут вставлены новые элементы соответствует параметру start. Необязательное значение.

Возвращаемое значение

Новый массив удалённых элементов. Исходный массив изменяется; если ничего не удалено, возвращается пустой массив.

Особенности

Без аргументов ничего не меняет. Если задан только start, удаляет до конца; явно переданный undefined или отрицательное deleteCount означает 0. Отрицательный start отсчитывается от конца, границы ограничиваются массивом. Для изменённой копии используйте toSpliced().

Примеры, попробуйте сами

Чем удалённые элементы отличаются от изменённого массива

Измените start, deleteCount или добавляемые значения. Для каждого свежего массива отдельно выводятся удалённые элементы и оставшийся массив.

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
const original = [1, 2, 3, 'a', 'b', 'c']
// Каждый сценарий получает свежую копию; splice() возвращает удалённые элементы.
function compare(...args) {
    const values = original.slice()
    const removed = values.splice(...args)
    console.log('Аргументы:', args)
    console.log('Удалено:', removed)
    console.log('Массив:', values)
}
compare(3)
compare(-3)
compare(2, 2)
compare(-2, 2)
compare(0, 2, 'z', true)
compare(3, 0, 'z', 'z', 'z')
compare(2, -1)
compare(2, undefined)
compare()