El método concat() se usa para unir dos o más arrays. Este método no cambia los arrays existentes, sino que devuelve un nuevo array.

Sintaxis

var nuevo_array = viejo_array.concat(valor1[, valor2[, ...[, valorN]]])

Parámetros

valorN
Arrays y/o valores a concatenar en el nuevo array. Ver la descripción posterior para más detalles.

Valor de retorno

Una nueva instancia de Array.

Descripción

El método concat crea un nuevo array que consta de los elementos del objeto que lo llama, seguido, en orden de ingreso, por los elementos de cada parámetro (en caso de que el parámetro sea un array), o el parámetro mismo (en caso de que no sea un array). No se aplica de forma recursiva a parámetros con arreglos anidados.

El método concat no altera this el array original, ni ninguno de los que fueron ingresados como parámetros, sino que devuelve una copia superficial que contiene copias de los mismos elementos de los arrays originales combinados. Los elementos de los arrays originales son copiados en el nuevo array de la siguiente manera:

  • Referencias a Objetos (no el objeto real): concat copia las referencias de objetos en el nuevo array. Ambos, el array original y el nuevo refieren al mismo objeto. Es decir, si un objeto referenciado es modificado, los cambios serán visibles tanto en el array nuevo como en el antiguo.
  • Tipo de de datos como cadenas, números y boleanos (no objetos String, NumberBoolean objects): concat copia los valores de los strings y numeros en el nuevo array.

Nota: Al concatenar arrays o valores no se modificarán los originales. Además, las operaciones en el nuevo array no tendrán efecto en el array original, y viceversa.

Ejemplos

Concatenando dos arrays

En el siguiente código se concatenan dos arrays:

var alpha = ['a', 'b', 'c'],
    numeric = [1, 2, 3];

var alphaNumeric = alpha.concat(numeric);

console.log(alphaNumeric); 
// Da como resultado: ['a', 'b', 'c', 1, 2, 3]

Concatenando tres arrays

En el siguiente código se concatenan tres arrays:

var num1 = [1, 2, 3],
    num2 = [4, 5, 6],
    num3 = [7, 8, 9];

var nums = num1.concat(num2, num3);

console.log(nums); // Da como resultado: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Concatenando valores a un array

En el siguiente código se concatenan tres valores a un array:

var alpha = ['a', 'b', 'c'];

var alphaNumeric = alpha.concat(1, [2, 3]);

console.log(alphaNumeric); 
// Da como resultado: ['a', 'b', 'c', 1, 2, 3]

Concatenando arrays anidados

En el siguiente código concatena arrays anidados y demuestra retención de referencias:

var num1 = [[1]];
var num2 = [2, [3]];

var nums = num1.concat(num2);

console.log(nums);
// Da como resultado: [[1], 2, [3]]

// modifica el primer elemento de num1
num1[0].push(4);

console.log(nums);
// Da como resultado: [[1, 4], 2, [3]]

Especificaciones

Especificación Estado Comentario
ECMAScript 3rd Edition (ECMA-262) Standard Definición inicial. Implementado en JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
La definición de 'Array.prototype.concat' en esta especificación.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Array.prototype.concat' en esta especificación.
Standard  

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo 1Edge Soporte completo SiFirefox Soporte completo 1IE Soporte completo 5.5Opera Soporte completo SiSafari Soporte completo SiWebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Sinodejs Soporte completo Si

Leyenda

Soporte completo  
Soporte completo

 

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: lajaso, germun, joseluisq, KurtPoehler, dgrcode, gonzalog
Última actualización por: lajaso,