recorrer objetos objeto lista eliminar elemento convertir buscar array agregar javascript arrays object

eliminar - lista de objetos javascript



Cómo agregar un objeto a una matriz (13)

¿Cómo puedo agregar un objeto a una matriz (en javascript o jquery)? Por ejemplo, ¿cuál es el problema con este código?

function(){ var a = new array(); var b = new object(); a[0]=b; }

Me gustaría usar este código para guardar muchos objetos en la matriz de function1 y llamar a function2 para usar el objeto en la matriz.

  1. ¿Cómo puedo guardar un objeto en una matriz?
  2. ¿Cómo puedo poner un objeto en una matriz y guardarlo en una variable?

Ampliando la respuesta de Gabi Purcaru para incluir una respuesta al número 2.

a = new Array(); b = new Object(); a[0] = b; var c = a[0]; // c is now the object we inserted into a...


En alternativ respuesta es la siguiente.

si tiene una matriz como esta: var contacts = [bob, mary];

y si quieres poner otra matriz en esta matriz, puedes hacerlo de esta manera:

Declarar la función del constructor.

function add (firstName,lastName,email,phoneNumber) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.phoneNumber = phoneNumber; }

Realiza el objeto desde la función:

var add1 = new add("Alba","Fas","[email protected]","[098] 654365364");

y agrega el objeto a la matriz:

contacts[contacts.length] = add1;


En primer lugar, no hay ningún object o array . Hay Object y Array . En segundo lugar, puedes hacer eso:

a = new Array(); b = new Object(); a[0] = b;

Ahora a será una matriz con b como su único elemento.


La forma en que hice creador de objetos con la lista automática:

var list = []; function saveToArray(x) { list.push(x); }; function newObject () { saveToArray(this); };


Ponga cualquier cosa en una matriz usando Array.push ().

var a=[], b={}; a.push(b); // a[0] === b;

Información adicional en Arrays

Agrega más de un artículo a la vez

var x = [''a'']; x.push(''b'', ''c''); // x = [''a'', ''b'', ''c'']

Agregar elementos al principio de una matriz

var x = [''c'', ''d'']; x.unshift(''a'', ''b''); // x = [''a'', ''b'', ''c'', ''d'']

Añade los contenidos de una matriz a otra.

var x = [''a'', ''b'', ''c'']; var y = [''d'', ''e'', ''f'']; x.push.apply(x, y); // x = [''a'', ''b'', ''c'', ''d'', ''e'', ''f''] // y = [''d'', ''e'', ''f''] (remains unchanged)

Crear una nueva matriz a partir del contenido de dos matrices

var x = [''a'', ''b'', ''c'']; var y = [''d'', ''e'', ''f'']; var z = x.concat(y); // x = [''a'', ''b'', ''c''] (remains unchanged) // y = [''d'', ''e'', ''f''] (remains unchanged) // z = [''a'', ''b'', ''c'', ''d'', ''e'', ''f'']


Puedes usar este prototipo de javascript como este:

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

=> array1 contiene el resto de ellos


Se está ejecutando en un problema de alcance si utiliza su código como tal. Debe declararlo fuera de las funciones si planea usarlo entre ellas (o si lo llama, páselo como parámetro).

var a = new Array(); var b = new Object(); function first() { a.push(b); // Alternatively, a[a.length] = b // both methods work fine } function second() { var c = a[0]; } // code first(); // more code second(); // even more code


Usando la notación ES6 , puedes hacer algo como esto:

var arr1 = [1,2,3] var obj = 4

Para añadir puede usar el operador de propagación de esta manera:

var newData = [...arr1, obj] // [1,2,3,4]


obejct es claramente un error tipográfico. Pero tanto el object como la array necesitan letras mayúsculas.

Puede usar las manos cortas para la new Array y el new Object estos son [] y {}

Puede insertar datos en la matriz utilizando .push . Esto lo agrega al final de la matriz. o puede establecer un índice para contener los datos.

function saveToArray() { var o = {}; o.foo = 42; var arr = []; arr.push(o); return arr; } function other() { var arr = saveToArray(); alert(arr[0]); } other();


/* array literal */ var aData = []; /* object constructur */ function Data(firstname, lastname) { this.firstname = firstname; this.lastname = lastname; this.fullname = function() { return (this.firstname + " " + this.lastname); }; } /* store object into array */ aData.push(new Data("Jhon", "Doe")); aData.push(new Data("Anna", "Smith")); aData.push(new Data("Black", "Pearl")); /* convert array of object into string json */ var jsonString = JSON.stringify(aData); document.write(jsonString); /* loop arrray */ for (var x in aData) { alert(aData[x].fullname()); }


a=[]; a.push([''b'',''c'',''d'',''e'',''f'']);


var years = []; for (i= 2015;i<=2030;i=i+1) { years.push({operator : i}) }

Aquí arraigo años está teniendo valores como

years[0]={operator:2015} years[1]={operator:2016}

Sigue así.


  • JavaScript distingue entre case-sensitive . Al llamar a la new array() y al new object() se lanzará un error de ReferenceError ya que no existen.
  • Es mejor evitar el new Array() debido a su comportamiento propenso a errores .
    En su lugar, asigne la nueva matriz con = [val1, val2, val_n] . Para objetos, usa = {} .
  • Hay muchas maneras de extender una matriz (como se muestra en la answer de John), pero la forma más segura sería usar concat lugar de push . concat devuelve una nueva matriz, dejando la matriz original sin tocar. push muta la matriz de llamada, lo que debe evitarse , especialmente si la matriz se define globalmente.
  • También es una buena práctica freeze el objeto así como la nueva matriz para evitar mutaciones involuntarias. Un objeto congelado no es mutable ni extensible (superficialmente).

Aplicando esos puntos y para responder a sus dos preguntas, podría definir una función como esta:

function appendObjTo(thatArray, newObj) { const frozenObj = Object.freeze(newObj); return Object.freeze(thatArray.concat(frozenObj)); }

Uso:

// Given const myArray = ["A", "B"]; // "save it to a variable" const newArray = appendObjTo(myArray, {hello: "world!"}); // returns: ["A", "B", {hello: "world!"}]. myArray did not change.