Вебсправочник
Справочник JavaScript

Array.splice(): изменение массива на месте

Метод splice удаляет или вставляет элементы в существующий массив и возвращает массив удалённых значений.

Назначение

Метод splice удаляет или вставляет элементы в существующий массив и возвращает массив удалённых значений.

Как это работает

Первый аргумент задаёт начальную позицию, второй — число удаляемых элементов. Остальные аргументы вставляются на это место. При нулевом числе удалений можно только добавить новые элементы.

Пример

const items=['a','b','c'];
const removed=items.splice(1,1,'x','y');
console.assert(JSON.stringify(removed)==='["b"]');
console.assert(JSON.stringify(items)==='["a","x","y","c"]');

Что должно получиться

Элемент b удалён и возвращён отдельно. В исходном массиве вместо него стоят x и y, поэтому длина массива увеличилась на один.

Граница применения и частая ошибка

Не путайте splice со slice: один меняет исходный массив, другой создаёт срез. Общие ссылки на массив увидят изменение, что важно для состояния интерфейса.

Самостоятельная проверка

Вставьте новый элемент без удаления, затем замените два элемента одним. После каждого шага проверьте отдельно исходный массив и возвращённые удалённые значения.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.