Array.prototype.splice()

Метод splice() змінює вміст масиву, видаляючи існуючі та/або додаючи нові елементи.

Синтаксис

var arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

Параметри

start
Індекс елемента, з якого розпочнеться зміна масиву. Якщо індекс більший за розмір масиву, start буде рівним довжині масиву. Якщо індекс від'ємний, позначатиме кількість елементів з кінця масиву (починаючи з -1, тобто -n означатиме індекс n-го елемента з кінця, і таким чином є еквівалентом array.length - n). Якщо абсолютна величина start є більшою за довжину масиву, зміни почнуться з індексу 0.
deleteCountOptional
Число, що вказує на кількість елементів масиву, які необхідно видалити, починаючи з індексу start.
Якщо аргумент deleteCount не заданий, або його значення більше чи дорівнює arr.length - start (тобто, більше чи дорівнює кількості елементів, які залишились у масиві, починаючи зі start), тоді будуть видалені всі елементи, починаючи зі start і до кінця масиву.
Якщо deleteCount рівний 0 або від'ємний, жоден елемент не буде видалений. У цьому випадку необхідно вказати хоча б один новий елемент для вставки (див. нижче).
item1, item2, ...Optional
Елементи, що будуть додані до масиву, починаючи з індексу start. Якщо не вказати жодного нового елемента, splice() лише видалить елементи з масиву.

Значення, що повертається

Масив видалених елементів. Якщо видалено лише один елемент, метод поверне масив з одним елементом. Якщо жоден з елементів не видалявся, метод повертає пустий масив.

Опис

Якщо задана кількість елементів для вставлення відрізняється від кількості елементів на видалення, довжина масиву зміниться після виконання функції.

Приклади

Видалення 0 елементів, починаючи з індексу 2, і вставлення "drum"

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum');

// myFish дорівнює ["angel", "clown", "drum", "mandarin", "sturgeon"] 
// removed дорівнює [], жодний елемент не було видалено

Видалення 0 елементів, починаючи з індексу 2, і вставлення "drum" та "guitar"

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum', 'guitar');

// myFish дорівнює ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed дорівнює [], жодний елемент не було видалено

Видалення 1 елемента, починаючи з індексу 3

var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);

// removed дорівнює ["mandarin"]
// myFish дорівнює ["angel", "clown", "drum", "sturgeon"]

Видалення 1 елементу, починаючи з індексу 2, і вставлення "trumpet"

var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, 'trumpet');

// myFish дорівнює ["angel", "clown", "trumpet", "sturgeon"]
// removed дорівнює ["drum"]

Видалення 2-ох елементів, починаючи з індексу 0, і вставлення у масив елементів "parrot", "anemone" і "blue"

var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');

// myFish дорівнює ["parrot", "anemone", "blue", "trumpet", "sturgeon"] 
// removed дорівнює ["angel", "clown"]

Видалення 2-ох елементів, починаючи з індексу 2

var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(2, 2);

// myFish дорівнює ["parrot", "anemone", "sturgeon"] 
// removed дорівнює ["blue", "trumpet"]

Видалення 1-го елемента, починаючи з індексу -2

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);

// myFish дорівнює ["angel", "clown", "sturgeon"]
// removed дорівнює ["mandarin"]

Видалення всіх елементів, починаючи з індексу 2 (включно).

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);

// myFish дорівнює ["angel", "clown"] 
// removed дорівнює ["mandarin", "sturgeon"]

Специфікації

Специфікація Статус Коментар
ECMAScript 3rd Edition (ECMA-262) Standard Початкове визначення. Реалізовано у JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard
ECMAScript (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Living Standard

Підтримка веб-переглядачів

BCD tables only load in the browser

Див. також

  • push() / pop() — додати/видалити елементи з кінця масиву
  • unshift() / shift() — додати/видалити елементи з початку масиву
  • concat() — повертає новий масив, складений шляхом об'єднання цього масиву з іншим масивом(-ами) чи значеннями.