String.prototype.slice()
Метод slice()
(викраяти, вирізати скибку) значень String
витягає частину свого рядка і повертає її новим рядком, не змінюючи початковий.
Спробуйте його в дії
Синтаксис
slice(indexStart)
slice(indexStart, indexEnd)
Параметри
indexStart
Індекс першого символу, що буде включений в повернений підрядок.
indexEnd
Необов'язковеІндекс першого символу, котрий буде виключений з поверненого підрядка.
Повернене значення
Новий рядок, що містить вибрану частину рядка.
Опис
Метод slice()
витягає текст з початкового рядка і повертає його як новий рядок.
Метод slice()
витягає текст до позиції, вказаної в indexEnd
, проте не включає її. Наприклад, str.slice(4, 8)
вибирає вміст від п'ятого символу і до восьмого (символи з індексами 4
, 5
, 6
і 7
).
indexStart indexEnd
↓ ↓
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| T | h | e | | m | i | r | r | o | r |
m i r r
_______________
↑
Результат
- Якщо
indexStart >= str.length
, то повертається порожній рядок. - Якщо
indexStart < 0
, то індекс рахується з кінця рядка. Більш формально висловлюючись, в цьому випадку підрядок починається відmax(indexStart + str.length, 0)
. - Якщо
indexStart
опущено, невизначений або не може бути перетворений на число, то він вважається еквівалентним0
. - Якщо
indexEnd
пропущений або невизначений, або якщоindexEnd >= str.length
, тоslice()
витягає все до кінця рядка. - Якщо
indexEnd < 0
, то індекс рахується від кінця рядка. Більш формально висловлюючись, в цьому випадку підрядок закінчується наmax(indexEnd + str.length, 0)
. - Якщо після нормалізації від'ємних значень
indexEnd <= indexStart
(наприклад,indexEnd
вказує на символ, що стоїть передindexStart
), то повертається порожній рядок.
Приклади
Застосування slice() для створення нового рядка
Наступний приклад використовує метод slice()
для створення нового рядка.
const str1 = "Світає, край неба палає..."; // Довжина рядка str1 дорівнює 26.
const str2 = str1.slice(1, 6);
const str3 = str1.slice(5, -3);
const str4 = str1.slice(8);
const str5 = str1.slice(30);
console.log(str2); // вітає
console.log(str3); // є, край неба палає
console.log(str4); // край неба палає...
console.log(str5); // ""
Застосування slice() з від'ємними індексами
Наступний приклад використовує метод slice()
з від'ємними індексами.
let str = "Світає, край неба палає...";
str.slice(-8); // 'палає...'
str.slice(-8, -3); // 'палає'
str.slice(0, -3); // 'Світає, край неба палає'
Наступний приклад рахує 17
позицій у зворотному напрямі від кінця рядка, аби знайти індекс початку, і потім прямує звідти вперед на позицію 15
від початку рядка, щоб знайти індекс кінця вибірки.
console.log(str.slice(-17, 15)); // "рай не"
Код далі – рахує 11
позицій вперед від початку, щоб знайти індекс старту вибірки, і далі перебирає 9
позицій з кінця рядка у зворотному порядку, де і завершує вибирання.
console.log(str.slice(11, -9)); // "й неба"
А такі аргументи змушують метод порахувати 6
позицій з кінця у зворотному напрямку для знаходження індексу початку вибірки, і іще 1
у зворотному напрямку з кінця рядка для знаходження кінцевого індексу вибірки.
console.log(str.slice(-6, -1)); // "лає.."
Специфікації
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
slice
|
Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | Internet Explorer Full support 4 | Opera Full support 4 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox for Android Full support 4 | Opera Android Full support 10.1 | Safari on iOS Full support 1 | Samsung Internet Full support 1.0 | Deno Full support 1.0 | Node.js Full support 0.10.0 |