Skip to main content

Метод split() у рядках

split(), це метод рядків (а не масивів), який розділяє рядок на частини за вказаним розділювачем (separator) і повертає масив підрядків. Вихідний рядок при цьому лишається незмінним, бо рядки в JavaScript незмінні за своєю природою, а метод просто будує новий масив.

Теорія

TL;DR

  • split() живе на рядках: "abc".split(...), а не на масивах.
  • Повертає масив підрядків, вихідний рядок не змінює.
  • Розділювачем може бути рядок або регулярний вираз.
  • Другий параметр limit обмежує кількість елементів у результаті.
  • Якщо розділювач не знайдено, повертається масив з одного елемента.
  • Зворотна дія, це join().

Швидкий приклад

javascript
const str = "apple,banana,cherry"; const arr = str.split(","); console.log(arr); // ["apple", "banana", "cherry"]
  • Розділювач "," вказує, де «розрізати» рядок.
  • Результат, це масив рядків уже без ком.

Синтаксис і параметри

javascript
string.split(separator, limit);
ПараметрОпис
separator(необов'язковий) рядок або регулярний вираз, за яким розбивати. Якщо не вказати, метод поверне весь рядок одним елементом.
limit(необов'язковий) максимальна кількість елементів у результаті.

limit саме обрізає результат, а не «склеює залишок»: "a,b,c,d,e".split(",", 3) дає ["a", "b", "c"], і хвіст "d,e" просто губиться. Якщо потрібен залишок цілим, ріжте вручну через indexOf і slice.

Приклади

Розділення за пробілами:

javascript
const text = "JavaScript is awesome"; const words = text.split(" "); console.log(words); // ["JavaScript", "is", "awesome"]

Розділення на символи:

javascript
const chars = "hello".split(""); console.log(chars); // ["h", "e", "l", "l", "o"]

З обмеженням limit:

javascript
const str = "a,b,c,d,e"; const parts = str.split(",", 3); console.log(parts); // ["a", "b", "c"]

Якщо розділювач не знайдено:

javascript
const str = "apple banana"; console.log(str.split(",")); // ["apple banana"], nothing changed

Якщо рядок порожній:

javascript
"".split(","); // [""] "".split(""); // [], the only case that gives an empty array

Регулярний вираз як розділювач

Коли розділювачів кілька або вони змінні, замість рядка передають регулярний вираз:

javascript
"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"]

Якщо в регулярному виразі є група захоплення, її вміст теж потрапляє в результат, і це іноді дуже зручно:

javascript
"2025-10-14".split(/([-])/); // ["2025", "-", "10", "-", "14"]

Пара split() і join()

Ці два методи майже завжди ходять разом: split() розбирає рядок на частини, join() збирає назад.

javascript
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*/.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.