Javascript中的Push对象

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;

我需要在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;
        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={}到循环的顶部。可能重复