我需要将对象推入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);
    }
}

最后,我将具有3个相同对象的newIssueList。为什么会覆盖第一个?如何解决此问题?

最佳答案

您必须在循环内移动对象。

var newIssueList = [];

function myFunction() {
    for (var i = 0; i < 3; i++) {
        var NewIssue = {};
        NewIssue.Id = i;
        NewIssue.Number = 233 + i;
        NewIssue.Name = "Test" + i.toString();

        newIssueList.push(NewIssue);
    }
}

myFunction();

console.log(newIssueList);


然后,您可以扩展对象文字a,但使其更具可读性:
    for (var i = 0; i < 3; i++) {
        var NewIssue = {
           Id:i,
           Number:233+i,
           Name:"Test"+i
        };

        newIssueList.push(NewIssue);
    }

关于javascript - 在JavaScript中推送对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45256872/

10-11 05:40