Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
O método concat() é utilizado para mesclar dois ou mais arrays. Esse método não altera os arrays existentes, mas, em vez disso, retorna um novo array.
Arrays e/ou valores para concatenar em um novo array. Se todos os parâmetros valorN forem omitidos, concat retorna uma shallow copy de todos os arrays existentes do qual é chamado. Veja a descrição abaixo para mais detalhes.
Uma nova instância Array.
O método concat cria um novo array. O array irá primeiro ser preenchido pelos elementos no objeto no qual é chamado. Então, para cada argumento, seu valor será concatenado no array — para objetos normais ou primitivos, o próprio argumento se tornará um elemento do array final; para arrays ou objetos tipo array com a propriedade Symbol.isConcatSpreadable definida como um valor verdadeiro, cada elemento do argumento será adicionado independentemente ao array final. O método concat não recursa em argumentos de array aninhados.
O método concat() é um copying method. Ele não altera this ou quaquer um dos arrays fornecidos como argumentos, mas, em vez disso retorna uma shallow copy que contém os mesmos elementos dos arrays originais.
O método concat() preserva slots vazios se qualquer um dos arrays de origem for sparse.
O método concat() é genérico. O valor this é tratado da mesma forma como os outros argumentos (exceto que será convertido em um objeto primeiro), o que significa que objetos simples serão anexados diretamente ao array resultante, enquanto objetos do tipo array com verdadeiro @@isConcatSpreadable serão propagados no array resultante.
O código a seguir concatena dois arrays:
O código a seguir concatena três arrays:
O código a seguir concatena três valores em um array:
O código a seguir concatena arrays aninhados e demonstra a retenção de referência:
concat não trata todos os objetos tipo array como arrays por padrão — somente se Symbol.isConcatSpreadable estiver definido como um valor verdadeiro (P.ex. true)
Se qualquer uma das arrays é sparse, a array resultante será também sparse:
Se o valor this não for um array, ele será convertido em um objeto e então tratado da mesma forma que os argumentos para concat(). Nesse caso o valor de retorno é sempre um novo array simples.
| ECMAScript® 2027 Language Specification # sec-array.prototype.concat |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 17 de fev. de 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.