2012-03-30 13 views
6

Mam tablicę obiektów, które wygląda następująco:Dodanie obiektu do tablicy obiektów z splice

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

Jak mogę dodać element tej tablicy?

myślałem

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

Dzięki.

+0

To już tutaj odpowiedział: http://stackoverflow.com/a/12189963/984780 –

Odpowiedz

6

Ponieważ chcę dodać obiekt w środku tablicy, skończyło się z tego rozwiązania:

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

co z usuwaniem obiektu, którego wartość = 'e5'? –

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

Spróbuj użyć .push(...)^

9

Jeśli chcesz po prostu dodać wartość na końcu tablicy to funkcja push(newObj) najłatwiej, choć splice(...) będzie również działać (tylko nieco trudniejsze).

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"}]; 

Zobacz doskonałą MDN documentation for the Array object dobrego odniesienia metod i właściwości dostępnych na tablicach.

[Edytuj] Aby wstawić coś do środkowej tablicy wtedy na pewno będziesz chciał użyć metody splice(index, numToDelete, el1, el2, ..., eln) który obsługuje zarówno usuwanie i wstawianie dowolnych elementów w każdej pozycji:

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

Chciałbym dodać obiekt w środku tablicy. – user823527

+0

@ user823527: zobacz moją zaktualizowaną odpowiedź. – maerics

0

Cóż można zazwyczaj używać:

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

lub (lekko wolniejsze)

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

jeśli jednak chcesz wstawić element do środka tablicy, a nie zawsze na końcu, będziemy musieli wymyślić coś bardziej twórczego.

Nadzieję, że to pomaga,

ise

Powiązane problemy