| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/concat | [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 julho de 2015.
O mtodo concat() utilizado para mesclar dois ou mais arrays.
Esse mtodo no altera os arrays existentes, mas, em vez disso, retorna um novo array.
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"]
concat()
concat(valor0)
concat(valor0, valor1)
concat(valor1, valor2, /*...,*/ valorN)
valorN OptionalArrays e/ou valores para concatenar em um novo array. Se todos
os parmetros valorN forem omitidos, concat retorna uma
shallow copy de todos os arrays existentes do qual chamado. Veja a descrio abaixo
para mais detalhes.
Uma nova instncia Array.
O mtodo concat cria um novo array. O array ir primeiro ser preenchido pelos elementos no objeto no qual chamado. Ento, para cada argumento, seu valor ser concatenado no array para objetos normais ou primitivos, o prprio 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 mtodo concat no recursa em argumentos de array aninhados.
O mtodo concat() um copying method. Ele no altera this ou quaquer um dos arrays fornecidos como argumentos, mas, em vez disso retorna uma shallow copy que contm os mesmos elementos dos arrays originais.
O mtodo concat() preserva slots vazios se qualquer um dos arrays de origem for sparse.
O mtodo concat() genrico. 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 sero anexados diretamente ao array resultante, enquanto objetos do tipo array com verdadeiro @@isConcatSpreadable sero propagados no array resultante.
O cdigo a seguir concatena dois arrays:
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]
O cdigo a seguir concatena trs arrays:
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]
O cdigo a seguir concatena trs valores em um array:
const letras = ["a", "b", "c"];
const alfaNumerico = letras.concat(1, [2, 3]);
console.log(alfaNumerico);
// resulta em ['a', 'b', 'c' , 1, 2, 3]
O cdigo a seguir concatena arrays aninhados e demonstra a reteno de referncia:
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 num1
num1[0].push(4);
console.log(numeros);
// resulta em [[1, 4], 2, [3]]
concat no trata todos os objetos tipo array como arrays por padro somente se Symbol.isConcatSpreadable estiver definido como um valor verdadeiro (P.ex. true)
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 ]
Se qualquer uma das arrays sparse, a array resultante ser tambm sparse:
console.log([1, , 3].concat([4, 5])); // [1, empty, 3, 4, 5]
console.log([1, 2].concat([3, , 5])); // [1, 2, 3, empty, 5]
Se o valor this no for um array, ele ser convertido em um objeto e ento tratado da mesma forma que os argumentos para concat(). Nesse caso o valor de retorno sempre um novo array simples.
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]
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.concat |
Array.prototype.concat in core-js with fixes and implementation of modern behavior like Symbol.isConcatSpreadable supportArrayArray.prototype.push()Array.prototype.unshift()Array.prototype.splice()String.prototype.concat()Symbol.isConcatSpreadableThis page was last modified on 17 de fev. de 2025 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 |