Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.
Метод splice()
змінює вміст масиву, видаляючи існуючі та/або додаючи нові елементи.
Синтаксис
array.splice(start, deleteCount[, item1[, item2[, ...]]])
Аргументи
start
- Індекс елемента, з якого розпочнеться зміна (починаючи з 0). Якщо індекс більше за розмір масиву, початковий індекс буде рівним довжині масиву. Якщо індекс від'ємний, відрахунок розпочнеться з кінця масиву.
deleteCount
- Число, що вказує на кількість елементів масиву, які необхідно видалити. Якщо
deleteCount
рівний 0, жоден елемент не буде видалений. У цьому випадку необхідно вказати хоча б один новий елемент для вставки. ЯкщоdeleteCount
більше за кількість елементів між початковим індексом та індексом останнього елемента, у такому разі усі елементи з цього проміжку будуть видалені. - Якщо аргумент
deleteCount
упущено,deleteCount
буде рівним (arr.length - start
). item1, item2, ...
- Елементи, що будуть додані до масиву, починаючи з
start
індексу. Якщо не вказати жодного нового елементу,splice()
лише проведе операцію видалення згідно описуdeleteCount
.
Повернення
Масив з видаленими елементами. Якщо видалено лише один елемент, метод поверне масив з лише одним елементом. Якщо жоден з елементів не видалявся, метод повертає пустий масив.
Опис
Якщо Ви передасте різну кількість нових та видалених елементів, масив на виході з виклику матиме відмінну від початкової довжину.
Приклади
Використання splice()
Наступний скрипт демонструє способи використання методу splice()
:
var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; // removes 0 elements from index 2, and inserts 'drum' var removed = myFish.splice(2, 0, 'drum'); // myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] // removed is [], no elements removed // myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] // removes 1 element from index 3 removed = myFish.splice(3, 1); // myFish is ['angel', 'clown', 'drum', 'surgeon'] // removed is ['mandarin'] // myFish is ['angel', 'clown', 'drum', 'surgeon'] // removes 1 element from index 2, and inserts 'trumpet' removed = myFish.splice(2, 1, 'trumpet'); // myFish is ['angel', 'clown', 'trumpet', 'surgeon'] // removed is ['drum'] // myFish is ['angel', 'clown', 'trumpet', 'surgeon'] // removes 2 elements from index 0, and inserts 'parrot', 'anemone' and 'blue' removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); // myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] // removed is ['angel', 'clown'] // myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] // removes 2 elements from index 2 removed = myFish.splice(myFish.length -3, 2); // myFish is ['parrot', 'anemone', 'surgeon'] // removed is ['blue', 'trumpet']
Специфікації
Специфікація | Статус | Коментар |
---|---|---|
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 2017 Draft (ECMA-262) The definition of 'Array.prototype.splice' in that specification. |
Draft |
Підтримка веб-переглядачів
Функціональність | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базова підтримка | 1.0 | 1.0 (1.7 or earlier) | 5.5 | (Yes) | (Yes) |
Функціональність | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базова підтримка | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Зворотня сумісність
У JavaScript 1.2 метод splice()
повертає видалений елемент, коли видаляється лише один елемент (deleteCount
рівний 1); у інших випадках метод повертає масив з видаленими елементами.
Зверніть увагу: Останній браузер, що використовував JavaScript 1.2 це Netscape Navigator 4, тож можна розраховувати на те, що splice()
завжди повертає масив. Це той випадок, коли JavaScript об'єкт має властивість length
та метод splice()
, і console.log()
вважає його Array-подібним об'єктом. Перевірка instanceof Array
на ньому поверне false.