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 |