JS метод Array.slice()
Опис
Метод slice() дозволяє створити поверхневу копію обраної частини масиву в новому об'єкті масиву. Ця копія формується на основі початкового та кінцевого індексів, при чому кінцевий індекс в результат не включається. Цінність методу полягає в тому, що оригінальний масив при цьому залишається незміненим.
slice() зберігає порожні місця в масиві. Тобто, якщо частина масиву, що копіюється, містить порожні слоти, то новий масив також буде мати ці порожні місця.
Приклад використання методу slice():
let fruits = ["apple", "banana", "cherry", "date"];
let selectedFruits = fruits.slice(1, 3);
console.log(selectedFruits); // Output: ["banana", "cherry"]
console.log(fruits); // Output: ["apple", "banana", "cherry", "date"]
У цьому прикладі, метод slice() копіює частину масиву з першого по третій елементи (не включаючи третій). Оригінальний масив fruits залишається незміненим.
| Порада: | Якщо ви не вказуєте аргументи |
| Порада: | Метод |
| Порада: | Якщо вам потрібно скопіювати весь масив або створити його повну копію, ви можете використати slice() без аргументів. Наприклад:
Таким чином, ви отримаєте новий масив, який містить ті самі елементи, що й початковий масив. Це особливо корисно, якщо ви плануєте внести зміни до скопійованого масиву без впливу на початковий. |
| Порада: | За допомогою методу
В результаті отримаєте новий масив, що містить елементи з індексу 2 до індексу 5 (не включаючи його) з початкового масиву. |
| Нотатка: | Метод |
Синтаксис
slice()
slice(start)
slice(start, end)
Параметри
startПочатковий індекс, з якого відбувається вибірка. Перетворюється на ціле число.
- Негативний індекс відлічується від кінця масиву - якщо
start < 0, використовуєтьсяstart + array.length. - Якщо
start < -array.lengthабоstartне вказано, використовується 0. - Якщо
start >= array.length, нічого не копіюється.
- Негативний індекс відлічується від кінця масиву - якщо
endКінцевий індекс, до якого проводиться вибірка.Перетворюється на ціле число. Метод
slice()вибирає елементи до, але не включаючи, цей кінцевий індекс.- Негативний індекс відлічується від кінця масиву - якщо
end < 0, використовуєтьсяend + array.length. - Якщо
end < -array.length, використовується 0. - Якщо
end >= array.lengthабоendне вказано, використовуєтьсяarray.length, що призводить до копіювання всіх елементів до кінця. - Якщо
endрозташовано передstartабо на рівніstartпісля нормалізації, нічого не копіюється.
- Негативний індекс відлічується від кінця масиву - якщо
Return
arrayНовий масив, що містить видобуті елементи.
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
18 |
4 |
1 |
| Переглядач | ||
|---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад демонструє, як метод slice() може бути використаний для створення нового масиву з частини існуючого масиву, а також як використовувати filter() в поєднанні з slice() для вилучення об'єктів за властивостями.
Повернення частини масиву.
const fruits = ["Банан", "Апельсин", "Лимон", "Яблуко", "Манго"];
const citrus = fruits.slice(1, 3);
// масив fruits містить ['Банан', 'Апельсин', 'Лимон', 'Яблуко', 'Манго']
// масив citrus містить ['Апельсин', 'Лимон']
Виклик методу slice() на об'єктах, що не є масивами.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 33, // ігнорується slice(), оскільки length дорівнює 3
};
console.log(Array.prototype.slice.call(arrayLike, 1, 3));
// [ 3, 4 ]
Використання slice() на розріджених масивах.
console.log([1, 2, , 4, 5].slice(1, 4)); // [2, empty, 4]
