HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since janeiro de 2020.
Experimental: Esta é uma tecnologia experimentalVerifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.
O método flat() cria um novo array com todos elementos sub-arrays concatenados nele de forma recursiva até a profundidade especificada.
flat()
const arr1 = [0, 1, 2, [3, 4]]; console.log(arr1.flat()); // expected output: Array [0, 1, 2, 3, 4] const arr2 = [0, 1, [2, [3, [4, 5]]]]; console.log(arr2.flat()); // expected output: Array [0, 1, 2, Array [3, Array [4, 5]]] console.log(arr2.flat(2)); // expected output: Array [0, 1, 2, 3, Array [4, 5]] console.log(arr2.flat(Infinity)); // expected output: Array [0, 1, 2, 3, 4, 5]
flat(); flat(depth);
depth
O nível de profundidade especifíca o quão profundo um array aninhando deve ser achatado. O padrão é 1.
Um novo array com os elementos sub-array concatenados nele.
var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4] var arr2 = [1, 2, [3, 4, [5, 6]]]; arr2.flat(); // [1, 2, 3, 4, [5, 6]] var arr3 = [1, 2, [3, 4, [5, 6]]]; arr3.flat(2); // [1, 2, 3, 4, 5, 6] const arr4 = [1, 2, [3, 4, [5, 6, [7, 8]]]]; arr4.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8]
o método flat remove espaços vazios do array:
var arr5 = [1, 2, , 4, 5]; arr5.flat(); // [1, 2, 4, 5]
reduce
concat
var arr = [1, 2, [3, 4]]; // Achatar array de nível único arr.flat(); // É equivalente à arr.reduce((acc, val) => acc.concat(val), []); // [1, 2, 3, 4] // Ou com sintaxe de decomposição const flattened = (arr) => [].concat(...arr);
isArray
var arr = [1, 2, [3, 4, [5, 6]]]; // Para achatamentos mais profundos, use recursividade com reduce e concat function flatDeep(arr, d = 1) { return d > 0 ? arr.reduce( (acc, val) => acc.concat(Array.isArray(val) ? flatDeep(val, d - 1) : val), [], ) : arr.slice(); } flatDeep(arr, Infinity); // [1, 2, 3, 4, 5, 6]
Array.prototype.flat
Enable JavaScript to view this browser compatibility table.
Array.prototype.flatMap()
Array.prototype.map()
Array.prototype.reduce()
Array.prototype.concat()