Ce face Array.prototype.flatMap
flatMap este echivalent cu map(...).flat(), dar mai rapid. Funcția poate returna un tablou cu oricâte elemente: un tablou gol elimină elementul, un tablou cu mai multe valori îl „multiplică”.
Aplatizarea se face doar cu un nivel.
Parametri
| Parametru | Descriere |
|---|---|
functie |
Primește (element, indice, tablou) și returnează o valoare sau un tablou. |
Ce returnează
Un tablou nou.
Exemple
Exemplul 1: Cuvintele din mai multe propoziții
const propozitii = ["Bună ziua", "Ce mai faci azi"];
console.log(propozitii.map((p) => p.split(" ")));
console.log(propozitii.flatMap((p) => p.split(" ")));
Rezultat
[ [ 'Bună', 'ziua' ], [ 'Ce', 'mai', 'faci', 'azi' ] ]
[ 'Bună', 'ziua', 'Ce', 'mai', 'faci', 'azi' ]
Exemplul 2: Filtrare și transformare într-un singur pas
const intrari = ["12", "abc", "7", "", "30"];
console.log(intrari.flatMap((x) => (x !== "" && !Number.isNaN(Number(x)) ? [Number(x)] : [])));
Rezultat
[ 12, 7, 30 ]
Greșeli frecvente
- Te aștepți să aplatizeze mai multe niveluri.
flatMapcoboară doar unul; pentru mai multe foloseștemapurmat deflat(n).
Comenzi înrudite
Array.prototype.flat: Aplatizează un tablou care conține alte tablouri, până la adâncimea dorită.map: Creează un tablou nou, transformând fiecare element cu o funcție.filter: Creează un tablou nou doar cu elementele care îndeplinesc o condiție.