Array.prototype.flat în JavaScript

Aplatizează un tablou care conține alte tablouri, până la adâncimea dorită.

Sintaxă
tablou.flat(adancime)

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, dar flatMap face 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.