| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | [Back] [Original] |
Get to know MDN better
Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since janeiro de 2020.
O mtodo flatMap() primeiro mapeia cada elemento usando uma funo de mapeamento e, em seguida, nivela o resultado em um novo array. idntico a um map seguido por um flat de profundidade 1, mas flatMap bastante til e mescla ambos em um mtodo um pouco mais eficiente.
const arr1 = [1, 2, 1];
const result = arr1.flatMap((num) => (num === 2 ? [2, 2] : 1));
console.log(result);
// Expected output: Array [1, 2, 2, 1]
var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {
// retorna o elemento para new_array
}[, thisArg])
callbackFuno que produz um elemento de uma nova Array, pegando trs argumentos:
currentValueO valor atual sendo processo na array.
indexOptionalO index do valor atual sendo processo na array.
arrayOptionalO map da array que foi chamado.
thisArgOptionalValor para ser usado como this quando callback estiver sendo executado.
Uma nova array com cada elemento sendo o resultado da funo callback e achatado ao valor de 1.
Veja Array.prototype.map() para uma detalhada descrio da funo callback. O mtodo flatMap idntico ao map seguido por um chamado a flatten de profundidade 1.
map e flatMapvar arr1 = [1, 2, 3, 4];
arr1.map((x) => [x * 2]);
// [[2], [4], [6], [8]]
arr1.flatMap((x) => [x * 2]);
// [2, 4, 6, 8]
// S o primeiro nvel
arr1.flatMap((x) => [[x * 2]]);
// [[2], [4], [6], [8]]
Enquanto que acima poderamos alcanar apenas com a utilizao de map, j aqui temos um exemplo onde flatMap mais apropriado.
Vamos gerar uma lista de palavras a partir de uma lista de sentenas.
let arr1 = ["it's Sunny in", "", "California"];
arr1.map((x) => x.split(" "));
// [["it's","Sunny","in"],[""],["California"]]
arr1.flatMap((x) => x.split(" "));
// ["it's","Sunny","in", "", "California"]
Perceba, o comprimento da lista de sada pode ser diferente do comprimento da lista de entrada.
reduce e concatvar arr1 = [1, 2, 3, 4];
arr1.flatMap((x) => [x * 2]);
// equivalente a
arr1.reduce((acc, x) => acc.concat([x * 2]), []);
// [ 2, 4, 6, 8 ]
| Specification | Status | Comment |
|---|---|---|
Array.prototype.flatMap proposal |
Rascunho |
This page was last modified on 22 de mai. de 2026 by MDN contributors.
ArrayArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()findLast()findLastIndex()Array.prototype.flat()Array.prototype.flatMap()Array.prototype.forEach()Array.prototype.includes()Array.prototype.indexOf()Array.prototype.join()Array.prototype.keys()Array.prototype.lastIndexOf()Array.prototype.map()Array.prototype.pop()Array.prototype.push()Array.prototype.reduce()Array.prototype.reduceRight()Array.prototype.reverse()Array.prototype.shift()Array.prototype.slice()Array.prototype.some()Array.prototype.sort()Array.prototype.splice()Array.prototype.toLocaleString()toReversed()toSorted()toSpliced()Array.prototype.toString()Array.prototype.unshift()Array.prototype.values()with()Array.prototype[@@iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |