Добавление объекта в массив объектов со сращиванием - PullRequest
9 голосов
/ 30 марта 2012

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

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

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

Я думал о

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

Спасибо.

Ответы [ 5 ]

10 голосов
/ 30 марта 2012

Если вы просто хотите добавить значение в конец массива, тогда функция 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 для Array объекта для хорошего ознакомления с методами и свойствами, доступными для массивов.

[Edit] Чтобы вставить что-то в середина массива, тогда вам определенно понадобится метод 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']
7 голосов
/ 30 марта 2012

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

var add_object = {"0": "e5"};
event_id.splice(n, 0, add_object); // n is declared and is the index where to add the object
1 голос
/ 31 августа 2018

ES6 решение с оператором распространения:

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

или если вы не хотите видоизменять event_id

newEventId = [...event_id,{"0":"e5"}]
0 голосов
/ 30 марта 2012

Ну, вы обычно можете использовать:

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

или (немного медленнее)

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

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

Надеюсь, это поможет,

ise

0 голосов
/ 30 марта 2012
event_id.push({"something", "else"});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...