JS метод Array.splice()
Опис
Метод splice() змінює вміст масиву, видаляючи або замінюючи існуючі елементи та/або додаючи нові елементи на вказане місце. Якщо кількість елементів, які потрібно вставити, не співпадає з кількістю елементів, які видаляються, довжина масиву відповідно змінюється.
Нижче наведено приклад використання методу splice():
let fruits = ["apple", "banana", "mango", "orange"];
fruits.splice(2, 1, "kiwi");
console.log(fruits); // Output: ["apple", "banana", "kiwi", "orange"]
У цьому прикладі ми замінюємо mango на kiwi. При цьому mango видаляється з масиву, а на його місце додається kiwi. Таким чином, результатом виконання коду буде масив ["apple", "banana", "kiwi", "orange"].
Зверніть увагу, що якщо видалена частина масиву була розрідженою, то масив, що повертається за допомогою splice(), також буде розрідженим, із відповідними порожніми слотами.
- Порада
-
Якщо ви хочете просто видалити елементи без додавання нових, ви можете передати тільки перший і другий аргументи. Наприклад,
автор: Bondarray.splice(2, 3)видалить3елементи починаючи з індексу2. - Порада
-
Метод
автор: Bondsplice()змінює вихідний масив і повертає масив, що містить видалені елементи. Це може бути корисно, якщо вам потрібно зберегти видалені елементи для подальшої обробки. - Нотатка
-
Якщо видаляється лише один елемент, повертається масив з одним елементом. Якщо немає видалених елементів, повертається порожній масив.
автор: Bond - Нотатка
-
Метод
автор: Bondsplice()застосовується, коли потрібно змінити вміст масиву без створення нового масиву. Якщо ж ви бажаєте створити новий масив, видаливши або замінивши його сегмент, і при цьому не змінюючи оригінальний масив, використовуйте методtoSpliced(). Щоб отримати доступ до сегментів масиву без його змін, скористайтеся методомslice(). - Нотатка
-
автор: Bondsplice()є універсальним методом, який очікує, що значенняthisматиме властивістьlengthта цілочисельні властивості з ключами. - Нотатка
-
Незважаючи на те, що структура рядків схожа на структуру масивів, цей метод не підходить для них, оскільки рядки в JavaScript є незмінними.
автор: Bond
Синтаксис
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item0)
splice(start, deleteCount, item0, item1)
splice(start, deleteCount, item0, item1, /* … ,*/ itemN)
Параметри
start-
Нульовий індекс (перетворений в ціле число), з якого починається зміна масиву.
- Негативний індекс відлічується від кінця масиву - якщо
start < 0, використовуєтьсяstart + array.length. - Якщо
start < -array.length, використовується 0. - Якщо
start >= array.length, жоден елемент не буде видалено, але метод поведе себе як функція додавання, додавши стільки елементів, скільки надано. - Якщо
startне вказано (і методsplice()викликається без аргументів), нічого не видаляється. Це відрізняється від передачіundefined, яке перетворюється на 0.
- Негативний індекс відлічується від кінця масиву - якщо
deleteCount-
Ціле число, що вказує кількість елементів, які слід видалити з масиву починаючи з позиції
start.Якщо
deleteCountне вказано, або якщо його значення більше або дорівнює кількості елементів після позиції, вказаної вstart, то всі елементи відstartдо кінця масиву будуть видалені.Якщо
автор: BonddeleteCountдорівнює 0 або є від'ємним, жоден елемент не видаляється. item0, …, itemN-
Елементи, які додаються до масиву, починаючи з позиції
автор: Bondstart. Якщо ви не вказуєте жодних елементів, методsplice()буде лише видаляти елементи з масиву.
Повернення
array-
Масив, що містить видалені елементи.
автор: Bond
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 4 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Видалення 2 елементів, починаючи з індексу 2.
const myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"];
const removed = myFish.splice(2, 2);
// myFish стає ["parrot", "anemone", "sturgeon"]
// removed стає ["blue", "trumpet"]
Метод splice() зберігає розрідженість масиву.
const arr = [1, , 3, 4, , 6];
console.log(arr.splice(1, 2)); // [empty, 3]
console.log(arr); // [1, 4, empty, 6]
Видалення 0 (нуль) елементів перед індексом 2 та вставлення "drum".
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");
// myFish стає ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed стає [], жоден елемент не було видалено
Цей приклад демонструє використання методу splice() для додавання, заміни та видалення елементів масиву. Кожна операція відображається окремо, що дозволяє краще зрозуміти, як працює цей метод.
Видалення 1 елемента за індексом 3.
const myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
const removed = myFish.splice(3, 1);
// myFish стає ["angel", "clown", "drum", "sturgeon"]
// removed стає ["mandarin"]
Виклик splice() на не-масивних об'єктах.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
};
console.log(Array.prototype.splice.call(arrayLike, 0, 1, 2, 3));
// [ 5 ]
console.log(arrayLike);
// { '0': 2, '1': 3, '3': 4, length: 4, unrelated: 'foo' }
Коментарі
Коментарів ще немає — будьте першим!