Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Objetos Globais
  5. Array
  6. Array.prototype.flat()

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

Array.prototype.flat()

Baseline Widely available

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 é umatecnologia experimental
Verifique atabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

O métodoflat() cria um novo array com todos elementos sub-arrays concatenados nele de forma recursiva até a profundidade especificada.

Experimente

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]

Sintaxe

js
flat();flat(depth);

Parâmetros

depthOptional

O nível de profundidade especifíca o quão profundo um array aninhando deve ser achatado. O padrão é 1.

Retorno

Um novo array com os elementos sub-array concatenados nele.

Exemplos

Achatando arrays aninhados

js
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]

Achatando e buracos em array

o método flat remove espaços vazios do array:

js
var arr5 = [1, 2, , 4, 5];arr5.flat();// [1, 2, 4, 5]

Alternativa

reduce econcat

js
var arr = [1, 2, [3, 4]];// Achatar array de nível únicoarr.flat();// É equivalente àarr.reduce((acc, val) => acc.concat(val), []);// [1, 2, 3, 4]// Ou com sintaxe de decomposiçãoconst flattened = (arr) => [].concat(...arr);

reduce +concat +isArray + recursividade

js
var arr = [1, 2, [3, 4, [5, 6]]];// Para achatamentos mais profundos, use recursividade com reduce e concatfunction 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]

Especificações

EspecificaçãoStatusComentários
Array.prototype.flat proposalDraft

Compatibilidade com navegadores

Veja Também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp