2012-03-30 12 views
6

Tengo una matriz de objetos que tiene este aspecto:Adición de un objeto a una matriz de objetos con empalme

event_id=[{"0":"e1"},{"0","e2"},{"0","e4"}]; 

¿Cómo puedo añadir un elemento a la matriz?

pensé en

event_id.splice(1,0,{"0":"e5"}); 

Gracias.

+0

Esto ya ha sido contestada aquí: http://stackoverflow.com/a/12189963/984780 –

Respuesta

6

Ya que quiero agregar el objeto en el centro de la matriz, que terminó con esta solución:

var add_object = {"0": "e5"}; 
event_id.splice(n, 0, add_object); // n is declared and is the index where to add the object 
+0

¿qué tal eliminar un objeto donde value = 'e5'? –

1
event_id.push({"something", "else"}); 

Trate de usar .push(...)^

9

Si lo que desea es añadir un valor al final de una matriz entonces la función push(newObj) es más fácil, aunque splice(...) también funcionará (sólo un poco más complicado).

var event_id = [{"0":"e1"}, {"0":"e2"}, {"0":"e4"}]; 
event_id.push({"0":"e5"}); 
//event_id.splice(event_id.length, 0, {"0":"e5"}); // Same as above. 
//event_id[event_id.length] = {"0":"e5"}; // Also the same. 
event_id; // => [{"0":"e1"}, {"0":"e2"}, {"0":"e4"}, {"0":"e5"}]; 

Véase el excelente MDN documentation for the Array object para una buena referencia de los métodos y propiedades disponibles en matrices.

[Editar] Para insertar algo en el medio de la matriz a continuación, que sin duda querrá utilizar el método splice(index, numToDelete, el1, el2, ..., eln) que se ocupa tanto de borrado e inserción de elementos arbitrarios en cualquier posición:

var a = ['a', 'b', 'e']; 
a.splice(2, // At index 2 (where the 'e' is), 
      0, // delete zero elements, 
     'c', // and insert the element 'c', 
     'd'); // and the element 'd'. 
a; // => ['a', 'b', 'c', 'd', 'e'] 
+0

Me gustaría agregar el objeto en el medio de la matriz. – user823527

+0

@ user823527: ver mi respuesta actualizada. – maerics

0

bien se podría usar normalmente:

event_id[event_id.length] = {"0":"e5"}; 

o (el ligeramente más lento)

event_id.push({"0":"e5"}); 

aunque si quiere insertar un elemento en el centro de una matriz y no siempre en el extremo, entonces tendremos que encontrar algo un poco más creativo.

creo que sirve,

ise

Cuestiones relacionadas