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]