Pregunta

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

¿Fue útil?

Solución

Utilice 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 función push() 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]);
}


Update

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);

Update

Solo una adición a esta respuesta si desea agregar cualquier valor al inicio de una matriz que signifique para el primer índice, entonces 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.

Otros consejos

Si solo estás agregando una única 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);

El concat no afecta ar1 y ar2 a menos que sea reasignado, por ejemplo:

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

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

Mucha información excelente aquí.

Algunas evaluaciones comparativas rápidas (cada prueba = 500k elementos adjuntos y los resultados son promedios de múltiples ejecuciones) mostraron lo siguiente:

Firefox 3.6 (Mac):

  • Pequeñas matrices: arr[arr.length] = b es más rápido (300 ms frente a 800 ms)
  • Matrices grandes: arr.push(b) es más rápido (500 ms frente a 900 ms)

Safari 5.0 (Mac):

  • Pequeñas matrices: arr.push() es más rápido (90 ms frente a 115 ms)
  • Matrices grandes: arr[arr.length] es más rápido (160 ms frente a 185 ms)

Google Chrome 6.0 (Mac):

  • Pequeñas matrices: No hay diferencias significativas (¡y Chrome es RÁPIDO! ¡Solo ~ 38 ms!)
  • Matrices grandes: No hay diferencia significativa (160 ms)

Me gusta más la sintaxis <=>, pero creo que estaría mejor con la 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:

function arrpush_small() {
    var arr1 = [];
    for (a = 0; a < 100; a++)
    {
        arr1 = [];
        for (i = 0; i < 5000; i++)
        {
            arr1.push('elem' + i);
        }
    }
}

function arrlen_small() {
    var arr2 = [];
    for (b = 0; b < 100; b++)
    {
        arr2 = [];
        for (j = 0; j < 5000; j++)
        {
            arr2[arr2.length] = 'elem' + j;
        }
    }
}


function arrpush_large() {
    var arr1 = [];
    for (i = 0; i < 500000; i++)
    {
        arr1.push('elem' + i);
    }
}

function arrlen_large() {
    var arr2 = [];
    for (j = 0; j < 500000; j++)
    {
        arr2[arr2.length] = 'elem' + j;
    }
}

Creo que vale la pena mencionar que push se puede llamar con múltiples argumentos, que se agregarán a la matriz en orden. Por ejemplo:

var arr = ['first'];
arr.push('second', 'third');
console.log(arr);

Como resultado de esto, puede usar push.apply para agregar una matriz a otra matriz de la siguiente manera:

var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);

ES5 anotado tiene más información sobre exactamente qué push y aplicar do.

Actualización 2016: con spread , ya no lo necesito apply, como:

var arr = ['first'];
arr.push('second', 'third');

arr.push(...['fourth', 'fifth']);
console.log(arr) ;

Puedes usar push y apply función para agregar dos matrices.

var array1 = [11, 32, 75];
var array2 = [99, 67, 34];

Array.prototype.push.apply(array1, array2);
console.log(array1);

se agregará array2 a array1.Ahora array1 contiene [11, 32, 75, 99, 67, 34].Este código es mucho más simple que escribir. for bucles para copiar todos y cada uno de los elementos de la matriz.

Con el nuevo ES6 operador de propagación , unir dos matrices usando push se vuelve aún más fácil:

var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);

Esto agrega el contenido de arr2 al final de arr.

Ejemplo de Babel REPL

Si arr es una matriz y val es el valor que desea agregar, use:

arr.push(val);

Por ejemplo

var arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);

Utilice concat :

a = [1, 2, 3];
b = [3, 4, 5];
a = a.concat(b);
console.log(a);

Javascript con ECMAScript 5 estándar que es compatible con la mayoría de los navegadores ahora, puede usar apply() para agregar array1 a array2.

var array1 = [3, 4, 5];
var array2 = [1, 2];

Array.prototype.push.apply(array2, array1);

console.log(array2); // [1, 2, 3, 4, 5]

Javascript con ECMAScript 6 estándar que es compatible con Chrome y FF e IE Edge, puede usar el operador spread:

"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];

array2.push(...array1);

console.log(array2); // [1, 2, 3, 4, 5]

El operador array2.push(...array1); reemplazará array2.push(3, 4, 5); con var combinedArray = array1.concat(array2); cuando el navegador esté pensando en la lógica.

Punto de bonificación

Si desea crear otra variable para almacenar todos los elementos de ambas matrices, puede hacer esto:

ES5 const combinedArray = [...array1, ...array2]

ES6 ...

El operador de propagación (<=>) es distribuir todos los elementos de una colección.

Si desea agregar dos matrices -

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

entonces podría usar:

var c = a.concat(b);

Y si desea agregar el registro g a la matriz (var a=[]), puede usar:

a.push('g');

El método push() agrega nuevos elementos al final de una matriz y devuelve la nueva longitud. Ejemplo:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");

// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi

La respuesta exacta a su pregunta ya está respondida, pero veamos algunas otras formas de agregar elementos a una matriz.

El método unshift() agrega nuevos elementos al comienzo de una matriz y devuelve la nueva longitud. Ejemplo:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");

// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango

Y, por último, el método concat() se utiliza para unir dos o más matrices. Ejemplo:

var fruits = ["Banana", "Orange"];
var moreFruits = ["Apple", "Mango", "Lemon"];
var allFruits = fruits.concat(moreFruits);

// The values of the children array will be:
Banana, Orange, Apple, Mango, Lemon

Hay un par de formas de agregar una matriz en JavaScript:

1) El método push() agrega uno o más elementos al final de una matriz y devuelve la nueva longitud de la matriz.

var a = [1, 2, 3];
a.push(4, 5);
console.log(a);

Salida:

[1, 2, 3, 4, 5]

2) El método unshift() agrega uno o más elementos al comienzo de una matriz y devuelve la nueva longitud de la matriz:

var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a); 

Salida:

[4, 5, 1, 2, 3]

3) El método concat() se usa para fusionar dos o más matrices. Este método no cambia las matrices existentes, sino que devuelve una nueva matriz.

var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);

Salida:

[ "a", "b", "c", "d", "e", "f" ]

4) puede usar la propiedad .length de la matriz para agregar un elemento al final de la matriz:

var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar ); 

Salida:

 ["one", "two", "three", "four"]

5) El método splice() cambia el contenido de una matriz al eliminar elementos existentes y / o agregar nuevos elementos:

var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);

Salida:

["angel", "clown", "mandarin", "surgeon","nemo"]

6) También puede agregar un nuevo elemento a una matriz simplemente especificando un nuevo índice y asignando un valor:

var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);

Salida:

["one", "two","three","four"]

Ahora, puede aprovechar la sintaxis de ES6 y simplemente hacer:

let array = [1, 2];
console.log([...array, 3]);

mantener la matriz original inmutable.

Si conoce el índice más alto (como el almacenado en una variable " i "), entonces puede hacerlo

myArray[i + 1] = someValue;

Sin embargo, si no sabe, puede usar

myArray.push(someValue);

como otras respuestas sugirieron, o puede usar

myArray[myArray.length] = someValue; 

Tenga en cuenta que la matriz está basada en cero, por lo que .length devuelve el índice más alto más uno.

También tenga en cuenta que no tiene que agregar en orden y que en realidad puede omitir valores, como en

myArray[myArray.length + 1000] = someValue;

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:

if(myArray[i] === "undefined"){ continue; }

si está seguro de que no tiene ceros en la matriz, simplemente puede hacer:

if(!myArray[i]){ continue; }

Por supuesto, asegúrese de que en este caso no utilice como condición myArray [i] (como algunas personas en Internet sugieren que, tan pronto como sea mayor, el índice más alto volverá indefinido que se evalúa como falso)

Añadir elemento individual

//Append to the end
arrName.push('newName1');

//Prepend to the start
arrName.unshift('newName1');

//Insert at index 1
arrName.splice(1, 0,'newName1');
//1: index number, 0: number of element to remove, newName1: new element


// Replace index 3 (of exists), add new element otherwise.
arrName[3] = 'newName1';

Añadir múltiples elementos

//Insert from index number 1
arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
//1: index number from where insert starts, 
//0: number of element to remove, 
//newElemenet1,2,3: new elements

Agregar matriz

//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array

concat(), por supuesto, también se puede usar con matrices bidimensionales. No se requiere bucle.

  

var a = [       [1, 2],       [3, 4]];

     

var b = [       [" a " ;, " b "],       [" c " ;, " d "]];

     

b = b.concat (a);

     

alerta (b [2] [1]); // resultado 2

Deje que la propiedad de longitud de matriz haga el trabajo:

myarray[myarray.length] = 'new element value added to the end of the array';

myarray.length devuelve el número de cadenas en la matriz. JS está basado en cero por lo que la siguiente clave de elemento de la matriz será la longitud actual de la matriz. EX:

var myarray = [0, 1, 2, 3],
    myarrayLength = myarray.length; //myarrayLength is set to 4
  

Solo quiero agregar un fragmento para la adición no destructiva de un elemento.

var newArr = oldArr.concat([newEl]);

Si está utilizando el ES6, puede usar spread operador para hacerlo.

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

var arr2 = [
    "dragonfruit",
    "elderberry",
    "fig"
];

arr.push(...arr2);

Añadir un valor a una matriz

Desde 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í :

const arr = [1, 2, 3];
const val = 4;

arr.concat([val]); // [1, 2, 3, 4]

O simplemente:

[...arr, val] // [1, 2, 3, 4]

puede hacerlo utilizando la nueva función JavaScript Es 6:

// initialize array

var arr = [
    "Hi",
    "Hello",
    "Bangladesh"
];

// append new value to the array

arr= [...arr , "Feni"];

// or you can put a variable value

var testValue = "Cool";

arr = [...arr , testValue ];

console.log(arr); 

// final output  [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ]

si desea combinar 2 matrices sin el duplicado, puede probar el siguiente código

array_merge = function (arr1, arr2) {
  return arr1.concat(arr2.filter(function(item){
    return arr1.indexOf(item) < 0;
  }))
}

usage:

array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)

Salida: [1,2,3,4,5]

Usted .push () ese valor en. Ejemplo: array.push (valor);

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.

arr=['a','b','c'];
arr.push('d');
//now print the array in console.log and it will contain 'a','b','c','d' as elements.
console.log(array);

Añadir un solo elemento

Para agregar un solo elemento a una matriz, use push() método proporcionado por el objeto Array:

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)

concat() muta la matriz original.

Para crear una nueva matriz, use let Método de matriz:

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)

Observe que const en 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ándola como <=>, ya que no puede reasignarla a <=>):

let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)

Añadir varios elementos

Para agregar un elemento múltiple a una matriz, puede usar <=> llamándolo con múltiples argumentos:

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)

También puede usar el <= > método que viste antes, pasando una lista de elementos separados por una coma:

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)

o una matriz:

<*>

Recuerde que, como se describió anteriormente, este método no muta la matriz original, pero devuelve una nueva matriz.

  

Originalmente publicado en

No tenemos la función de agregar para Array en javascript, pero tenemos push y unshift , imagina que tienes la matriz a continuación:

var arr = [1, 2, 3, 4, 5];

y nos gusta agregar un valor a esta matriz, podemos hacer, arr.push (6) y agregará 6 al final de la matriz:

arr.push(6); // return [1, 2, 3, 4, 5, 6];

también podemos usar unshift, mira cómo podemos aplicar esto:

arr.unshift(0); //return [0, 1, 2, 3, 4, 5];

Son funciones principales para agregar o agregar nuevos valores a las matrices.

Puede usar el método push.

Array.prototype.append = function(destArray){
     destArray = destArray || [];
     this.push.call(this,...destArray);
     return this;
}
var arr = [1,2,5,67];
var arr1 = [7,4,7,8];
console.log(arr.append(arr1));// [7, 4, 7, 8, 1, 4, 5, 67, 7]
console.log(arr.append("Hola"))//[1, 2, 5, 67, 7, 4, 7, 8, "H", "o", "l", "a"]

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);

Agregar elementos en una matriz

let fruits =["orange","banana","apple","lemon"]; /*array declaration*/

fruits.push("avacado"); /* Adding an element to the array*/

/*displaying elements of the array*/

for(var i=0; i < fruits.length; i++){
  console.log(fruits[i]);
}

Puede usar push () si desea agregar valores p.ej. arr.push("Test1", "Test2");

Si tiene una matriz, puede usar concat () p.ej. Array1.concat(Array2)

Si solo tiene un elemento para agregar, también puede probar la longitud menthod p.ej. array[aray.length] = 'test';

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top