Use el Array.prototype.push
método para agregar valores a una matriz:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
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]);
}
Actualizar
Si desea agregar los elementos de una matriz a otra matriz, puede usar firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Actualizar
Solo una adición a esta respuesta si desea agregar cualquier valor al comienzo de una matriz que signifique para el primer índice que luego puede usar Array.prototype.unshift
para este propósito.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
También admite agregar múltiples valores a la vez como push
.
for
en absoluto (usar.forEach
).length
propiedad. El intérprete hace un trabajo increíble en sí mismo y no hará ninguna diferencia en el mundo real, ya sea que lo optimice o no. Si su matriz se vuelve tan grande que la optimización.length
realmente ayudaría, lo más probable es que una matriz ya no sea la estructura de datos correcta. El usoforEach
tiene sus ventajas, pero es muy dudoso que el aumento del rendimiento sea una de ellas, ya que la llamada a la función para cada iteración conlleva un costo y no ahorra nada.length
propiedad de una matriz no se calcula cada vez que se llama, es una variable almacenada en elarray
objeto, que solo se actualiza cuando se modifica la matriz. Por lo tanto, de hecho, no hay ningún costo de rendimiento al incluirarr.length
lafor
condición.forEach
funciones de devolución de llamada en línea (algunas de ellas probablemente ya lo hagan) y no habrá diferencia en el código de máquina generado, si la función se llama con la frecuencia suficiente para ser compilada en lugar de ser interpretada por El tiempo de ejecución. El mismo consejo se aplica a cualquier lenguaje que no sea ensamblador, en realidad.Si solo está agregando una sola variable, entonces
push()
funciona bien. Si necesita agregar otra matriz, useconcat()
:El concat no afecta
ar1
y, aar2
menos que sea reasignado, por ejemplo:Mucha información genial aquí .
fuente
How do I append to an array in JavaScript?
, pero enconcat
realidad crea una nueva matriz. Esa es una diferencia importante! En cambio, diría que la respuesta a continuación de Omnimike es en realidad la mejor: use Push.apply para insertar una matriz completa en una matriz existente sin crear una nueva.ar1 = ar1.concat(ar2);
se añadirá aar1
ar1
, anexarar2
y luego devolver la nueva matriz. Simplemente omita la parte de asignación (ar1 = ...
) de esa línea de código y verá que el originalar1
no cambió. Si desea evitar hacer una copia, la necesitarápush
. No me creas, cree en los documentos : "El método concat () devuelve una nueva matriz" Primera oración en los documentos paraconcat
.ar2
todos modos es lo anterior. El resultado de.push
en el escenario será= [ar1, [ar2]]
. .concat resuelve ese problema, pero con sacrificio de velocidad y una nueva matriz creada. Para usarlo.push
correctamente en los anexos de matriz, haga un bucle del elemento contenido primero y presione cada uno.ar2.forEach(each => { ar1.push(each); });
Algunos puntos de referencia rápidos (cada prueba = 500k elementos adjuntos y los resultados son promedios de múltiples ejecuciones) mostraron lo siguiente:
Firefox 3.6 (Mac):
arr[arr.length] = b
es más rápido (300 ms frente a 800 ms)arr.push(b)
es más rápido (500 ms frente a 900 ms)Safari 5.0 (Mac):
arr[arr.length] = b
es más rápido (90 ms frente a 115 ms)arr[arr.length] = b
es más rápido (160 ms frente a 185 ms)Google Chrome 6.0 (Mac):
Me gusta más la
arr.push()
sintaxis, pero creo que estaría mejor con laarr[arr.length]
versión, al menos en velocidad bruta. Sin embargo, me encantaría ver los resultados de una ejecución de IE.Mis bucles de evaluación comparativa:
fuente
Creo que vale la pena mencionar que se puede llamar push con múltiples argumentos, que se agregarán a la matriz en orden. Por ejemplo:
Como resultado de esto, puede usar push.apply para agregar una matriz a otra matriz de la siguiente manera:
El ES5 anotado tiene más información sobre exactamente qué hacer y aplicar .
Actualización de 2016: con spread , ya no lo necesitas
apply
, como:fuente
Array.prototype.push.apply()
aunque preferiría usarla .Puede usar
push
yapply
función para agregar dos matrices.Anexará
array2
aarray1
. Ahoraarray1
contiene[11, 32, 75, 99, 67, 34]
. Este código es mucho más simple que escribirfor
bucles para copiar todos y cada uno de los elementos de la matriz.fuente
...
operador en lugar de aplicar laconst a1 = [] const a2 = [5,6,7] const.push(...a2)
edición: resaltado de sintaxisarray1.concat(array2)
en esta situación. La llamada apush
parece innecesaria.Con el nuevo operador de propagación ES6 , unir dos matrices usando
push
es aún más fácil:Esto agrega el contenido de
arr2
al final dearr
.Ejemplo REPL de Babel
fuente
Si
arr
es una matriz yval
es el valor que desea agregar, use:P.ej
fuente
Uso
concat
:fuente
Javascript con ECMAScript 5 estándar que es apoyada por la mayoría de los navegadores de hoy, se puede utilizar
apply()
para anexararray1
aarray2
.Javascript con el estándar ECMAScript 6 que es compatible con Chrome y FF e IE Edge, puede usar el
spread
operador:El
spread
operador reemplazaráarray2.push(...array1);
conarray2.push(3, 4, 5);
la que el explorador está pensando en la lógica.Punto de bonificación
Si quieres crear otro variable para almacenar todos los elementos de ambas matrices, puede hacer esto:
ES5
var combinedArray = array1.concat(array2);
ES6
const combinedArray = [...array1, ...array2]
El operador de propagación (
...
) es distribuir todos los elementos de una colección.fuente
Si desea agregar dos matrices:
entonces podrías usar:
Y si desea agregar un registro
g
a la matriz (var a=[]
), puede usar:fuente
El
push()
método agrega nuevos elementos al final de una matriz y devuelve la nueva longitud. Ejemplo:La respuesta exacta a su pregunta ya está respondida, pero veamos algunas otras formas de agregar elementos a una matriz.
El
unshift()
método agrega nuevos elementos al comienzo de una matriz y devuelve la nueva longitud. Ejemplo:Y, por último, el
concat()
método se utiliza para unir dos o más matrices. Ejemplo:fuente
Hay un par de formas de agregar una matriz en JavaScript:
1) El
push()
método agrega uno o más elementos al final de una matriz y devuelve la nueva longitud de la matriz.Salida:
2) El
unshift()
método agrega uno o más elementos al comienzo de una matriz y devuelve la nueva longitud de la matriz:Salida:
3) El
concat()
método se usa para fusionar dos o más matrices. Este método no cambia las matrices existentes, sino que devuelve una nueva matriz.Salida:
4) Puede usar la
.length
propiedad de la matriz para agregar un elemento al final de la matriz:Salida:
5) El
splice()
método cambia el contenido de una matriz eliminando elementos existentes y / o agregando nuevos elementos:Salida:
6) También puede agregar un nuevo elemento a una matriz simplemente especificando un nuevo índice y asignando un valor:
Salida:
fuente
push
hace: modifica la matriz original empujando nuevos elementos sobre ella. ¿Estoy leyendo esto mal, o debería ser editado?Ahora, puede aprovechar la sintaxis de ES6 y simplemente hacer:
manteniendo la matriz original inmutable.
fuente
Si conoce el índice más alto (como el almacenado en una variable "i"), puede hacer
Sin embargo, si no sabe, puede usar
como sugirieron otras respuestas, o puede usar
Tenga en cuenta que la matriz está basada en cero, por lo que la longitud devuelve el índice más alto más uno.
También tenga en cuenta que no tiene que agregar en orden y puede omitir valores, como en
En cuyo caso, los valores intermedios tendrán un valor indefinido.
Por lo tanto, es una buena práctica al recorrer un JavaScript para verificar que realmente exista un valor en ese punto.
Esto se puede hacer de la siguiente manera:
Si está seguro de que no tiene ceros en la matriz, puede hacer lo siguiente:
Por supuesto, asegúrese en este caso de que no use como condición myArray [i] (como algunas personas en Internet sugieren que, tan pronto como sea mayor, el índice más alto volverá indefinido, lo que se evalúa como falso)
fuente
"undefined"
. Debe leervoid 0
!"undefined"
es una cadena y"undefined" !== void 0
, por lo tanto, suif(myArray[i]
es falso a menos que la matriz en el índicei
se establezca en la cadena con el contenido equivalente de'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. También tenga en cuenta que no debe usarundefined
, sino usarvoid 0
. Porquevoid 0
siempre es el valor indefinido, mientras queundefined
puede definirse a través de algo asífunction x(undefined) { alert(undefined) } x("hello world")
, por lo que no puede estar seguro de si alguien configuró accidentalmentewindow["undefined"]=1
o similar.Agregar elemento único
Agregar elementos múltiples
Agregar matriz
fuente
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?arrName
era larga1
.concat()
, por supuesto, también se puede usar con matrices bidimensionales. No se requiere bucle.fuente
Deje que la propiedad de longitud de matriz haga el trabajo:
myarray.length devuelve el número de cadenas en la matriz. JS se basa en cero, por lo que la siguiente clave de elemento de la matriz será la longitud actual de la matriz. EX:
fuente
fuente
Agregar un valor a una matriz
Dado que Array.prototype.push agrega uno o más elementos al final de una matriz y devuelve la nueva longitud de la matriz , a veces solo queremos obtener la nueva matriz actualizada para que podamos hacer algo así:
O solo:
fuente
Si está utilizando el ES6, puede usar el operador de propagación para hacerlo.
fuente
puedes hacerlo usando la nueva función javascript Es 6:
fuente
si desea combinar 2 matrices sin el duplicado, puede probar el siguiente código
uso:
Salida: [1,2,3,4,5]
fuente
Agregar un solo elemento
Para agregar un solo elemento a una matriz, use el
push()
método proporcionado por el objeto Array:push()
Muta la matriz original.Para crear una nueva matriz, use el
concat()
método Array:Tenga en cuenta que en
concat()
realidad no agrega un elemento a la matriz, sino que crea una nueva matriz, que puede asignar a otra variable o reasignar a la matriz original (declarándolo comolet
, ya que no puede reasignar aconst
):Agregar varios elementos
Para agregar un elemento múltiple a una matriz, puede usarlo
push()
llamándolo con varios argumentos:También puede usar el
concat()
método que vio antes, pasando una lista de elementos separados por una coma:o una matriz:
Recuerde que, como se describió anteriormente, este método no muta la matriz original, pero devuelve una nueva matriz.
fuente
Usted .push () ese valor en. Ejemplo: array.push (value);
fuente
Si desea agregar un solo valor a una matriz, simplemente use el método push. Agregará un nuevo elemento al final de la matriz.
Pero si tiene la intención de agregar varios elementos, almacene los elementos en una nueva matriz y concatene la segunda matriz con la primera matriz ... de cualquier manera que desee.
fuente
No tenemos la función append para Array en javascript, pero tenemos push y unshift , imagina que tienes la siguiente matriz:
y nos gusta agregar un valor a esta matriz, podemos hacer, arr.push (6) y agregará 6 al final de la matriz:
también podemos usar unshift, mira cómo podemos aplicar esto:
Son funciones principales para agregar o agregar nuevos valores a las matrices.
fuente
Puedes usar el método push.
fuente
push()
agrega un nuevo elemento al final de una matriz.pop()
elimina un elemento del final de una matriz.Para agregar un objeto (como una cadena o un número) a una matriz, use:
array.push(toAppend);
fuente
Agregar elementos en una matriz
fuente
Puede usar push () si desea agregar valores, p. Ej.
arr.push("Test1", "Test2");
Si tiene una matriz, puede usar concat (), por ejemplo
Array1.concat(Array2)
Si solo tiene un elemento para agregar, también puede probar la longitud menthod, por ejemplo
array[aray.length] = 'test';
fuente