¿Cómo agregar algo a una matriz?

Resuelto interstar asked hace 15 años • 30 respuestas

¿Cómo agrego un objeto (como una cadena o un número) a una matriz en JavaScript?

interstar avatar Dec 09 '08 07:12 interstar
Aceptado

Utilice el Array.prototype.pushmétodo para agregar valores al final de una matriz:

// initialize array
var arr = [
  "Hi",
  "Hello",
  "Bonjour"
];

// append new value to the array
arr.push("Hola");

console.log(arr);
Expandir fragmento


Puede usar la push()función para agregar más de un valor a una matriz en una sola llamada:

// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];

// append multiple values to the array
arr.push("Salut", "Hey");

// display all values
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}
Expandir fragmento

Tenga en cuenta que el push()método devuelve la longitud actualizada de la matriz.


Actualizar

Si desea agregar los elementos de una matriz a otra matriz, puede usar firstArray.concat(secondArray):

var arr = [
  "apple",
  "banana",
  "cherry"
];

// Do not forget to assign the result as, unlike push, concat does not change the existing array
arr = arr.concat([
  "dragonfruit",
  "elderberry",
  "fig"
]);

console.log(arr);
Expandir fragmento

Actualizar

Solo una adición a esta respuesta, si desea anteponer cualquier valor al inicio de una matriz (es decir, el primer índice), puede usarlo Array.prototype.unshiftpara este propósito.

var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Expandir fragmento

También admite agregar múltiples valores a la vez como push.


Actualizar

Otra forma con la sintaxis de ES6 es devolver una nueva matriz con la sintaxis extendida . Esto deja la matriz original sin cambios, pero devuelve una nueva matriz con nuevos elementos añadidos o antepuestos, que cumplen con el espíritu de la programación funcional.

const arr = [
  "Hi",
  "Hello",
  "Bonjour",
];

const newArr1 = [
  ...arr,
  "Salut",
];
const newArr2 = [
  "Salut",
  ...arr,
];

console.log(newArr1, newArr2);
Expandir fragmento

Jack Bashford avatar Dec 09 '2008 00:12 Jack Bashford

Si solo agrega una variable, entonces push()funciona bien. Si necesita agregar otra matriz, use concat():

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

var ar3 = ar1.concat(ar2);

alert(ar1);
alert(ar2);
alert(ar3);
Expandir fragmento

El concat no afecta ar1y ar2a menos que sea reasignado, por ejemplo:

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

ar1 = ar1.concat(ar2);
alert(ar1);
Expandir fragmento

Hay mucha información excelente sobre la referencia de JavaScript .

MK_Dev avatar Dec 09 '2008 00:12 MK_Dev