Javascript中的Push对象
我需要在Javascript中将对象推送到数组,但每次推都会覆盖我已经添加的相同对象。例如:Javascript中的Push对象,javascript,arrays,push,Javascript,Arrays,Push,我需要在Javascript中将对象推送到数组,但每次推都会覆盖我已经添加的相同对象。例如: //This is object list var NewIssue = {}; //This is array var newIssueList = []; function myFunction() { for (var i = 0; i < 3; i++) { NewIssue.Id = i; NewIssue.Number = 233 + i;
//This is object list
var NewIssue = {};
//This is array
var newIssueList = [];
function myFunction() {
for (var i = 0; i < 3; i++) {
NewIssue.Id = i;
NewIssue.Number = 233 + i;
NewIssue.Name = "Test" + i.toString();
newIssueList.push(NewIssue);
}
}
//这是对象列表
var NewIssue={};
//这是一个数组
var newIssueList=[];
函数myFunction(){
对于(变量i=0;i<3;i++){
NewIssue.Id=i;
新发行。编号=233+i;
NewIssue.Name=“Test”+i.toString();
newIssueList.push(新发行);
}
}
最后,我将使用3个相同的对象创建newIssueList。为什么它会覆盖第一个,以及如何解决这个问题?您必须在循环中移动对象
var newIssueList=[];
函数myFunction(){
对于(变量i=0;i<3;i++){
var NewIssue={};
NewIssue.Id=i;
新发行。编号=233+i;
NewIssue.Name=“Test”+i.toString();
newIssueList.push(新发行);
}
}
myFunction();
console.log(newIssueList)代码>您还可以通过创建内联对象来避免使用多余的变量:
newIssueList.push({
Id: i,
Number: 233 + i,
Name: "Test" + i.toString()
});
只有一个对象,每次将其推入数组时,都会将引用推入现有对象。更改对象时,数组中的每个元素都会反映这一点,因为它们都指向同一个对象
您需要在每次迭代中创建一个新对象
//这是一个数组
var newIssueList=[];
函数myFunction(){
对于(变量i=0;i<3;i++){
推送({
id:我,
编号:233+i,
名称:“测试”+i.toString()
});
}
}
myFunction();
console.log(newIssueList)代码>添加NewIssue={}代码>到循环的顶部。可能重复