Metoda split
Metoda split rozděluje
řetězce do pole podle zadaného
oddělovače v prvním parametru.
Pokud není zadán - vrátí se celý
řetězec. Pokud je zadán jako prázdné uvozovky,
každý znak řetězce bude v samostatném
prvku pole. Druhým volitelným
parametrem lze určit maximální
počet prvků ve výsledném poli.
Syntaxe
řetězec.split([oddělovač], [maximální počet prvků]);
Příklad
Nechť je dán nějaký řetězec s pomlčkami. Pojďme
rozdělit tento řetězec do pole podle oddělovače
'-':
let str = 'ab-cd-ef';
let arr = str.split('-');
console.log(arr);
Výsledek provedení kódu:
['ab', 'cd', 'ef']
Příklad
Pojďme znovu rozdělit řetězec podle oddělovače
'-', ale druhým parametrem určeme
maximální počet prvků ve výsledném
poli, například 2. V tomto případě se do
pole zapíše pouze 2 prvky:
let str = 'ab-cd-ef';
let arr = str.split('-', 2);
console.log(arr);
Výsledek provedení kódu:
['ab', 'cd']
Příklad
Pojďme každý znak řetězce zapsat do samostatného prvku pole:
let str = 'abcde';
let arr = str.split('');
console.log(arr);
Výsledek provedení kódu:
['a', 'b', 'c', 'd', 'e']
Příklad
Pojďme první 3 znaky řetězce zapsat
do samostatných prvků pole:
let str = 'abcde';
let arr = str.split('', 3);
console.log(arr);
Výsledek provedení kódu:
['a', 'b', 'c']
Příklad
Pojďme pomocí split rozdělit
řetězec s čísly. Všimněte si,
že ve výsledku získáte pole řetězců,
a ne pole čísel:
let str = '12345';
let arr = str.split('');
console.log(arr);
Výsledek provedení kódu:
['1', '2', '3', '4', '5']
Příklad . Aplikace
Pojďme obrátit znaky řetězce v opačném
pořadí. K tomu rozdělíme řetězec do pole
pomocí split podle oddělovače ''
(umístí každý znak řetězce do samostatného
prvku pole), otočíme toto pole
pomocí reverse
a poté spojíme otočené pole zpět
pomocí join:
let str = '123456789';
let arr1 = str.split('');
let arr2 = arr1.reverse();
let res = arr2.join('');
console.log(res);
Výsledek provedení kódu:
'987654321'
Příklad . Aplikace
Zjednodušme řešení předchozí úlohy - spojme všechny příkazy do řetězce:
let str = '123456789';
let res = str.split('').reverse().join('');
console.log(res);
Výsledek provedení kódu:
'987654321'
Příklad . Aplikace
Je dán řetězec s číslicemi. Najděme součet číslic
z tohoto řetězce. K tomu rozdělíme řetězec
do pole a poté toto pole projdeme a
najdeme jeho součet. Čeká nás háček: split
vrací řetězce, proto při sčítání
převedeme tyto číslice-řetězce na skutečná
čísla pomocí Number:
let str = '12345';
let arr = str.split('');
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += Number(arr[i]);
}
console.log(sum);
Výsledek provedení kódu:
15
Příklad . Aplikace
Je dáno číslo. Pojďme zapsat každou číslici
tohoto čísla do samostatného prvku pole.
Je tu háček - split se aplikuje
pouze na řetězce, ale my máme číslo. Převeďme
nejprve číslo na řetězec pomocí String,
a poté aplikujme split:
let num = 12345;
let str = String(num);
let arr = str.split('');
console.log(arr);
Výsledek provedení kódu:
['1', '2', '3', '4', '5']