使用splice将对象添加到对象数组

时间:2012-03-30 16:01:30

标签: javascript

我有一个对象数组,如下所示:

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

如何向该数组添加元素?

我想到了

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

感谢。

5 个答案:

答案 0 :(得分:10)

如果你只想在数组的末尾添加一个值,那么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']

答案 1 :(得分:7)

由于我想在数组中间添加对象,我最终得到了这个解决方案:

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

答案 2 :(得分:1)

具有传播算子的ES6解决方案:

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

或者如果您不想突变event_id

newEventId = [...event_id,{"0":"e5"}]

答案 3 :(得分:0)

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

尝试使用.push(...) ^

答案 4 :(得分:0)

你通常可以使用:

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

或(略慢)

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

虽然如果你的意思是将一个元素插入到数组的中间而不是总是在最后,那么我们必须提出一些更有创意的东西。

希望它有所帮助,

ISE