Ce face Array.prototype.flat
flat returnează un tablou nou în care tablourile interioare sunt înlocuite cu elementele lor. Implicit coboară un singur nivel; cu flat(Infinity) aplatizează complet.
Pozițiile goale (găurile) sunt eliminate. Tabloul original nu se schimbă.
Parametri
| Parametru | Descriere |
|---|---|
adancime |
Opțional. Câte niveluri se aplatizează. Implicit 1. |
Ce returnează
Un tablou nou.
Exemple
Exemplul 1: Niveluri de aplatizare
const imbricat = [1, [2, 3], [4, [5, [6]]]];
console.log(imbricat.flat());
console.log(imbricat.flat(2));
console.log(imbricat.flat(Infinity));
console.log([1, , 3].flat());
Rezultat
[ 1, 2, 3, 4, [ 5, [ 6 ] ] ]
[ 1, 2, 3, 4, 5, [ 6 ] ]
[ 1, 2, 3, 4, 5, 6 ]
[ 1, 3 ]
Exemplul 2: Toate etichetele unor articole
const articole = [{ etichete: ["js", "web"] }, { etichete: ["css"] }, { etichete: ["js", "node"] }];
console.log(articole.map((a) => a.etichete).flat());
Rezultat
[ 'js', 'web', 'css', 'js', 'node' ]
Greșeli frecvente
- Scrii
map(...).flat(). Merge, darflatMapface aceleași două operații într-un singur pas.
Comenzi înrudite
Array.prototype.flatMap: Aplică o funcție fiecărui element și aplatizează rezultatul cu un nivel; ca map urmat de flat.Array.prototype.concat: Returnează un tablou nou format din tabloul inițial urmat de alte tablouri sau valori.map: Creează un tablou nou, transformând fiecare element cu o funcție.