Movatterモバイル変換


[0]ホーム

URL:


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

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.concat()

Baseline Widely available

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étodoconcat() é utilizado para mesclar dois ou mais arrays.Esse método não altera os arrays existentes, mas, em vez disso, retorna um novo array.

Experimente

const array1 = ["a", "b", "c"];const array2 = ["d", "e", "f"];const array3 = array1.concat(array2);console.log(array3);// Expected output: Array ["a", "b", "c", "d", "e", "f"]

Sintaxe

js
concat()concat(valor0)concat(valor0, valor1)concat(valor1, valor2, /*...,*/ valorN)

Parâmetros

valorNOptional

Arrays e/ou valores para concatenar em um novo array. Se todosos parâmetrosvalorN forem omitidos,concat retorna umashallow copy de todos os arrays existentes do qual é chamado. Veja a descrição abaixopara mais detalhes.

Valor de retorno

Uma nova instânciaArray.

Descrição

O métodoconcat 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 propriedadeSymbol.isConcatSpreadable definida como um valor verdadeiro, cada elemento do argumento será adicionado independentemente ao array final. O métodoconcat não recursa em argumentos de array aninhados.

O métodoconcat() é umcopying method. Ele não alterathis ou quaquer um dos arrays fornecidos como argumentos, mas, em vez disso retorna umashallow copy que contém os mesmos elementos dos arrays originais.

O métodoconcat() preserva slots vazios se qualquer um dos arrays de origem forsparse.

O métodoconcat() égenérico. O valorthis é 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.

Exemplos

Concatenando dois arrays

O código a seguir concatena dois arrays:

js
const letras = ["a", "b", "c"];const numeros = [1, 2, 3];const alfaNumerico = letras.concat(numeros);console.log(alfaNumerico);// resulta em ['a', 'b', 'c', 1, 2, 3]

Concatenando três arrays

O código a seguir concatena três arrays:

js
const num1 = [1, 2, 3];const num2 = [4, 5, 6];const num3 = [7, 8, 9];const numeros = num1.concat(num2, num3);console.log(numeros);// resulta em [1, 2, 3, 4, 5, 6, 7, 8, 9]

Concatenando valores em um array

O código a seguir concatena três valores em um array:

js
const letras = ["a", "b", "c"];const alfaNumerico = letras.concat(1, [2, 3]);console.log(alfaNumerico);// resulta em ['a', 'b', 'c' , 1, 2, 3]

Concatenando arrays aninhados

O código a seguir concatena arrays aninhados e demonstra a retenção de referência:

js
const num1 = [[1]];const num2 = [2, [3]];const numeros = num1.concat(num2);console.log(numeros);// resulta em [[1], 2, [3]]//modifica o primeiro elemento do num1num1[0].push(4);console.log(numeros);// resulta em [[1, 4], 2, [3]]

Concatenanto objetos tipo array com Symbol.isConcatSpreadable

concat não trata todos os objetos tipo array como arrays por padrão — somente seSymbol.isConcatSpreadable estiver definido como um valor verdadeiro (P.ex.true)

js
const obj1 = { 0: 1, 1: 2, 2: 3, length: 3 };const obj2 = { 0: 1, 1: 2, 2: 3, length: 3, [Symbol.isConcatSpreadable]: true };console.log([0].concat(obj1, obj2));// resulta em [ 0, { '0': 1, '1': 2, '2': 3, length: 3 }, 1, 2, 3 ]

Usando concat() em arrays sparse

Se qualquer uma das arrays é sparse, a array resultante será também sparse:

js
console.log([1, , 3].concat([4, 5])); // [1, empty, 3, 4, 5]console.log([1, 2].concat([3, , 5])); // [1, 2, 3, empty, 5]

Chamando concat() em objetos não array

Se o valorthis não for um array, ele será convertido em um objeto e então tratado da mesma forma que os argumentos paraconcat(). Nesse caso o valor de retorno é sempre um novo array simples.

js
console.log(Array.prototype.concat.call({}, 1, 2, 3)); // [{}, 1, 2, 3]console.log(Array.prototype.concat.call(1, 2, 3)); // [ [Number: 1], 2, 3 ]const arrayLike = { [Symbol.isConcatSpreadable]: true, length: 2, 0: 1, 1: 2 };console.log(Array.prototype.concat.call(arrayLike, 3, 4)); // [1, 2, 3, 4]

Especificação

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.concat

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