Metoda split
Metoda split împarte
șirurile într-un array după separatorul
specificat în primul parametru.
Dacă nu este specificat - va fi returnat întregul
șir. Dacă este specificat ca ghilimele goale,
atunci fiecare caracter al șirului va deveni un element
separat în array. Al doilea parametru opțional
poate specifica numărul maxim
de elemente în array-ul rezultat.
Sintaxă
șir.split([separator], [numărul maxim de elemente]);
Exemplu
Să presupunem că avem un șir cu cratime. Să
împărțim acest șir într-un array după separatorul
'-':
let str = 'ab-cd-ef';
let arr = str.split('-');
console.log(arr);
Rezultatul executării codului:
['ab', 'cd', 'ef']
Exemplu
Să împărțim din nou șirul după separatorul
'-', dar să specificăm ca al doilea parametru
numărul maxim de elemente în array-ul rezultat,
de exemplu, 2. În acest caz, în
array vor fi scrise doar 2 elemente:
let str = 'ab-cd-ef';
let arr = str.split('-', 2);
console.log(arr);
Rezultatul executării codului:
['ab', 'cd']
Exemplu
Să scriem fiecare caracter al șirului ca un element separat în array:
let str = 'abcde';
let arr = str.split('');
console.log(arr);
Rezultatul executării codului:
['a', 'b', 'c', 'd', 'e']
Exemplu
Să scriem primele 3 caractere ale șirului
ca elemente separate în array:
let str = 'abcde';
let arr = str.split('', 3);
console.log(arr);
Rezultatul executării codului:
['a', 'b', 'c']
Exemplu
Să împărțim cu split un
șir cu numere. Atenție la faptul că
în rezultat vom obține un array de șiruri,
nu un array de numere:
let str = '12345';
let arr = str.split('');
console.log(arr);
Rezultatul executării codului:
['1', '2', '3', '4', '5']
Exemplu . Aplicație
Să inversăm caracterele șirului în ordine
inversă. Pentru aceasta, vom împărți șirul într-un array
cu split după separatorul ''
(acest lucru va plasa fiecare caracter al șirului într-un element
separat al array-ului), vom inversa acest array
cu reverse
și apoi vom uni array-ul inversat înapoi
cu join:
let str = '123456789';
let arr1 = str.split('');
let arr2 = arr1.reverse();
let res = arr2.join('');
console.log(res);
Rezultatul executării codului:
'987654321'
Exemplu . Aplicație
Să simplificăm soluția problemei anterioare - să combinăm toate comenzile într-un lanț:
let str = '123456789';
let res = str.split('').reverse().join('');
console.log(res);
Rezultatul executării codului:
'987654321'
Exemplu . Aplicație
Este dat un șir cu cifre. Să găsim suma cifrelor
din acest șir. Pentru aceasta, vom împărți șirul
într-un array, apoi vom parcurge acest array și
vom găsi suma lui. Există o capcană: split
returnează șiruri, deci la însumare
vom converti aceste cifre-șiruri în numere
reale cu 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);
Rezultatul executării codului:
15
Exemplu . Aplicație
Este dat un număr. Să scriem fiecare cifră
a acestui număr într-un element separat al array-ului.
Aici există o capcană - split se aplică
doar la șiruri, iar noi avem un număr. Să convertim
întâi numărul în șir cu String,
apoi să aplicăm split:
let num = 12345;
let str = String(num);
let arr = str.split('');
console.log(arr);
Rezultatul executării codului:
['1', '2', '3', '4', '5']