Метод split() у рядках
split(), це метод рядків (а не масивів), який розділяє рядок на частини за вказаним розділювачем (separator) і повертає масив підрядків. Вихідний рядок при цьому лишається незмінним, бо рядки в JavaScript незмінні за своєю природою, а метод просто будує новий масив.
Теорія
TL;DR
split()живе на рядках:"abc".split(...), а не на масивах.- Повертає масив підрядків, вихідний рядок не змінює.
- Розділювачем може бути рядок або регулярний вираз.
- Другий параметр
limitобмежує кількість елементів у результаті. - Якщо розділювач не знайдено, повертається масив з одного елемента.
- Зворотна дія, це
join().
Швидкий приклад
const str = "apple,banana,cherry";
const arr = str.split(",");
console.log(arr); // ["apple", "banana", "cherry"]- Розділювач
","вказує, де «розрізати» рядок. - Результат, це масив рядків уже без ком.
Синтаксис і параметри
string.split(separator, limit);| Параметр | Опис |
|---|---|
separator | (необов'язковий) рядок або регулярний вираз, за яким розбивати. Якщо не вказати, метод поверне весь рядок одним елементом. |
limit | (необов'язковий) максимальна кількість елементів у результаті. |
limit саме обрізає результат, а не «склеює залишок»: "a,b,c,d,e".split(",", 3) дає ["a", "b", "c"], і хвіст "d,e" просто губиться. Якщо потрібен залишок цілим, ріжте вручну через indexOf і slice.
Приклади
Розділення за пробілами:
const text = "JavaScript is awesome";
const words = text.split(" ");
console.log(words); // ["JavaScript", "is", "awesome"]Розділення на символи:
const chars = "hello".split("");
console.log(chars); // ["h", "e", "l", "l", "o"]З обмеженням limit:
const str = "a,b,c,d,e";
const parts = str.split(",", 3);
console.log(parts); // ["a", "b", "c"]Якщо розділювач не знайдено:
const str = "apple banana";
console.log(str.split(",")); // ["apple banana"], nothing changedЯкщо рядок порожній:
"".split(","); // [""]
"".split(""); // [], the only case that gives an empty arrayРегулярний вираз як розділювач
Коли розділювачів кілька або вони змінні, замість рядка передають регулярний вираз:
"one1two22three".split(/\d+/);
// ["one", "two", "three"]
"a, b ,c".split(/\s*,\s*/);
// ["a", "b", "c"], spaces around commas are eaten
"line1\r\nline2\nline3".split(/\r?\n/);
// ["line1", "line2", "line3"]Якщо в регулярному виразі є група захоплення, її вміст теж потрапляє в результат, і це іноді дуже зручно:
"2025-10-14".split(/([-])/);
// ["2025", "-", "10", "-", "14"]Пара split() і join()
Ці два методи майже завжди ходять разом: split() розбирає рядок на частини, join() збирає назад.
const text = "JS is great";
const reversed = text.split(" ").reverse().join(" ");
console.log(reversed); // "great is JS"Що відбувається крок за кроком:
split(" ")перетворює рядок на масив слів;reverse()міняє порядок;join(" ")збирає масив назад у рядок.
Той самий прийом дає найкоротший спосіб перевернути рядок: str.split("").reverse().join("").
Коротко
| Що робить | Ділить рядок на частини і повертає масив |
|---|---|
| Де використовується | Лише в рядків ("abc".split()) |
| Повертає | Масив |
| Змінює вихідний рядок | Ні |
| Приклад | "1,2,3".split(",") дає ["1", "2", "3"] |
Підсумок:
split(), це спосіб перетворити рядок на масив, використовуючи заданий розділювач.
Типові помилки
- Викликати
split()на масиві. Це метод рядків:[1,2,3].split(",")кинеTypeError. Масив перетворює на рядокjoin(). - Плутати
split()зіsplice()іslice().split(), рядок у масив;slice(), копія частини;splice(), мутуюче вилучення або вставка в масив. - Очікувати від
"".split(",")порожній масив. Повернеться[""], масив з одного порожнього рядка, тому перевіркаparts.lengthна порожньому вводі дасть 1, а не 0. - Ділити рядок з емодзі через
split(""). Такий поділ іде по code units UTF-16 і ріже сурогатні пари навпіл. Правильніше[...str]абоArray.from(str), що ділить за code points. - Розбирати CSV через
split(","). Кома всередині лапок зламає розбір; для справжнього CSV потрібен парсер, а не один виклик методу. - Забувати обрізати пробіли.
"a, b".split(",")дає["a", " b"]з пробілом. Або додайте.map(s => s.trim()), або одразу ріжте за регулярним виразом/\s*,\s*/.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.