Array.from în JavaScript

Tablouri (array) ES2015 (ES6)

Creează un tablou nou din orice listă: text, Set, Map, NodeList sau un obiect cu length.

Sintaxă
Array.from(sursa, functieMap)

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 care map le sare. Folosește Array.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.