Ce face Array.from
Array.from transformă în tablou orice valoare iterabilă (șir de caractere, Set, Map, NodeList) sau orice obiect cu proprietatea length.
Al doilea parametru este o funcție aplicată fiecărui element, ca la map. Combinat cu { length: n }, este cel mai simplu mod de a genera un tablou cu n valori calculate.
Parametri
| Parametru | Descriere |
|---|---|
sursa |
Valoarea transformată în tablou. |
functieMap |
Opțional. Primește (element, indice) și returnează valoarea pusă în tablou. |
Ce returnează
Un tablou nou.
Exemple
Exemplul 1: Din text, Set și Map
console.log(Array.from("Iași"));
console.log(Array.from(new Set([3, 1, 3, 2, 1])));
console.log(Array.from(new Map([["a", 1], ["b", 2]])));
Rezultat
[ 'I', 'a', 'ș', 'i' ]
[ 3, 1, 2 ]
[ [ 'a', 1 ], [ 'b', 2 ] ]
Exemplul 2: Generarea unui tablou
console.log(Array.from({ length: 5 }, (_, i) => i + 1));
console.log(Array.from({ length: 4 }, (_, i) => 2 ** i));
console.log(Array.from({ length: 3 }, () => "-"));
Rezultat
[ 1, 2, 3, 4, 5 ]
[ 1, 2, 4, 8 ]
[ '-', '-', '-' ]
Exemplul 3: Cu funcție de transformare
const preturi = new Set([10, 25, 40]);
console.log(Array.from(preturi, (p) => p * 1.21));
Rezultat
[ 12.1, 30.25, 48.4 ]
Greșeli frecvente
- Scrii
new Array(5).map(...)și nu se întâmplă nimic: tabloul are 5 „găuri”, pe caremaple sare. FoloseșteArray.from({ length: 5 }, ...).
Comenzi înrudite
Array.of / Array(): Creează un tablou din valorile primite; diferența față de constructorul Array().... (spread): Desface un tablou sau un obiect în elementele lui. Folosit pentru copii și combinări.Set (add, has, delete): O colecție de valori unice: fiecare valoare apare o singură dată, în ordinea adăugării.