Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Метод split() у рядках». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`split()`, це метод рядків (не масивів), який ріже рядок на частини за вказаним розділювачем і повертає масив підрядків. Розділювачем може бути рядок або регулярний вираз, другий необов'язковий параметр `limit` обмежує кількість елементів результату. Якщо розділювач не знайдено, повертається масив з одного елемента, тобто з усім рядком; якщо взагалі не передати розділювач, теж повернеться весь рядок одним елементом. Вихідний рядок не змінюється, бо рядки в JavaScript незмінні. Пара до `split()`, це `join()`, який збирає масив назад у рядок.** ```javascript const str = "apple,banana,cherry"; str.split(","); // ["apple", "banana", "cherry"] str.split(",", 2); // ["apple", "banana"] "hello".split(""); // ["h", "e", "l", "l", "o"] ``` **Ключове:** `split()` перетворює рядок на масив за розділювачем, а `join()` робить зворотну дію.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**`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*/`.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.