28

我有一个数组:

items=[{'id':1},{'id':2},{'id':3},{'id':4}];

{'id':5}我应该如何在阵列中添加一对新的?

4

5 回答 5

57

使用.push

items.push({'id':5});
于 2013-09-23T08:29:33.543 回答
12

.push()将元素添加到数组的末尾。

如果需要在数组的开头添加一些元素,请使用.unshift() ,即:

items.unshift({'id':5});

演示:

items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];
items.unshift({'id': 0});
console.log(items);

如果您想在特定索引处添加对象,请使用.splice() ,即:

items.splice(2, 0, {'id':5});
           // ^ Given object will be placed at index 2...

演示:

items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];
items.splice(2, 0, {'id': 2.5});
console.log(items);

于 2018-01-18T12:04:10.860 回答
6

有时.concat().push()更好,因为.concat()返回新数组,而.push()返回数组的长度。

因此,如果您设置的变量等于结果,请使用.concat()

items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];
newArray = items.push({'id':5})

在这种情况下,newArray将返回 5(数组的长度)。

newArray = items.concat({'id': 5})

但是,这里newArray将返回 [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}]。

于 2018-06-23T23:35:16.903 回答
1

ES6 的新解决方案

默认对象

object = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];

另一个对象

object =  {'id': 5};

对象分配 ES6

resultObject = {...obj, ...newobj};

结果

[{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}];
于 2019-12-07T14:35:35.327 回答
0

如果你在做 jQuery,并且你有一个关于表单数据的serializeArray事情,例如:

var postData = $('#yourform').serializeArray();

// postData (array with objects) : 
// [{name: "firstname", value: "John"}, {name: "lastname", value: "Doe"}, etc]

...并且您需要向此数组添加一个具有相同结构的键/值,例如在发布到 PHP ajax 请求时,然后:

postData.push({"name": "phone", "value": "1234-123456"});

结果:

// postData : 
// [{name: "firstname", value: "John"}, {name: "lastname", value: "Doe"}, {"name":"phone","value":"1234-123456"}]
于 2019-10-09T08:53:29.203 回答