Método flat
O método flat reduz o nível
de aninhamento de um array multidimensional.
Pode tornar o array unidimensional
ou reduzir a dimensionalidade por um valor
especificado.
Sintaxe
let newArray = array.flat(nível de achatamento);
Exemplo
Vamos obter um novo array sem especificar nenhum valor no parâmetro:
let arr = ['a', 'b', ['c', 'd']];
let res = arr.flat();
console.log(res);
Como resultado da execução do código, veremos que os subarrays foram elevados em um nível:
['a', 'b', 'c', 'd']
Exemplo
Agora vamos aplicar o método
flat a um array com dois níveis
de aninhamento:
let arr = ['a', 'b', ['c', 'd', ['e', 'f']]];
let res = arr.flat();
console.log(res);
Resultado da execução do código:
['a', 'b', 'c', 'd', ['e', 'f']]
Exemplo
Vamos especificar o nível de aninhamento:
let arr = ['a', 'b', ['c', 'd', ['e', 'f']]];
let res = arr.flat(2);
console.log(res);
Resultado da execução do código:
['a', 'b', 'c', 'd', 'e', 'f']
Exemplo
Se não quisermos nos preocupar com o nível de aninhamento
e quisermos nivelar todo o array, usamos o parâmetro Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flat(Infinity);
console.log(res);
Resultado da execução do código:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Veja também
-
o método
flatMap,
que retorna um array de elementos após aplicar uma função