我有一个数组:
items=[{'id':1},{'id':2},{'id':3},{'id':4}];
我应该如何向数组添加新的{'id':5}
对?
答案 0 :(得分:44)
使用.push:
items.push({'id':5});
答案 1 :(得分:2)
.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);
答案 2 :(得分:2)
有时.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}]。
答案 3 :(得分: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"}]
答案 4 :(得分:0)
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}];