2012-03-30 4 views
6

У меня есть массив объектов, который выглядит следующим образом:Добавление объекта в массив объектов с сращивания

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

Как добавить элемент в этом массиве?

Я думал

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

Спасибо.

+0

Это уже отвечали здесь: http://stackoverflow.com/a/12189963/984780 –

ответ

6

Так как я хочу, чтобы добавить объект в середине массива, я закончил с этим решением:

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

как удалить объект, где значение = 'e5'? –

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

Попробуйте использовать .push(...)^

9

Если вы просто хотите, чтобы добавить значение в конец массива, то функция push(newObj) проще, хотя splice(...) также будет работать (только немного сложнее).

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

Смотрите отличный MDN documentation for the Array object для хорошего ведения методов и свойств, доступных на массивах.

[Редактировать] Чтобы вставить что-то в среднего массива, то вы определенно будете хотеть использовать splice(index, numToDelete, el1, el2, ..., eln) метод, который обрабатывает как удаление и вставка произвольных элементов в любом положении:

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

Я хотел бы добавить объект в середину массива. – user823527

+0

@ user823527: см. Мой обновленный ответ. – maerics

0

Ну вы могли бы использовать, как правило:

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

или (чуть медленнее)

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

хотя, если вы хотите вставить элемент в середину массива, а не всегда в конец, тогда нам придется придумать что-то более творческое.

Надеется, что это помогает,

ISE

Смежные вопросы