Array.prototype.splice()
Метод splice()
змінює вміст масиву, видаляючи існуючі та/або додаючи нові елементи.
Синтаксис
var arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
Параметри
start
- Індекс елемента, з якого розпочнеться зміна масиву. Якщо індекс більший за розмір масиву,
start
буде рівним довжині масиву. Якщо індекс від'ємний, позначатиме кількість елементів з кінця масиву (починаючи з -1, тобто -n означатиме індекс n-го елемента з кінця, і таким чином є еквівалентомarray.length - n
). Якщо абсолютна величинаstart
є більшою за довжину масиву, зміни почнуться з індексу 0. deleteCount
Optional- Число, що вказує на кількість елементів масиву, які необхідно видалити, починаючи з індексу
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