如何在数组数组中推送对象

时间:2017-02-02 09:27:44

标签: javascript angularjs

这里我想在数组的内部数组中推送对象。我该怎么做?

ticketsToAdd = [];
ticketsToAdd.push({
    "TicketId": "",
    "Attendees": []
})

for(var i=0; i<5; i++) {
    ticketsToAdd['Attendees'].push({
                        "EmailID": "",
                        "Phone": "",
                        "FirstName": "",
                        "LastName": "",
                        "Company": ""                          
    })
}

3 个答案:

答案 0 :(得分:5)

您需要一个索引来访问数组元素。

ticketsToAdd[0]['Attendees'].push();
//          ^^^

&#13;
&#13;
var ticketsToAdd = [],
    i;

ticketsToAdd.push({ TicketId: "", Attendees: [] });

for (i = 0; i < 5; i++) {
    ticketsToAdd[0]['Attendees'].push({ EmailID: "", Phone: "", FirstName: "", LastName: "", Company: "" });
}

console.log(ticketsToAdd);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;

答案 1 :(得分:2)

数组中没有数组。

数组内的对象内部有一个数组。

您需要首先访问该对象,然后才能访问其中的数组。

ticketsToAdd[0].Attendees.push(...)

答案 2 :(得分:1)

如果您只将一次推入ticketsToAdd数组,

使用,

for(var i=0; i<5; i++) {
        ticketsToAdd[0]['Attendees'].push({
        "EmailID": "",
        "Phone": "",
        "FirstName": "",
        "LastName": "",
        "Company": ""                          
        })  
    }

但是,如果多次推送,则必须使用索引i

由于您要向ticketsToAdd数组中添加更多对象,因此在将数据插入该数组时,请使用迭代中的数字i

使用ticketsToAdd.length来获取长度。

var ticketsToAdd = [];
ticketsToAdd.push({
    "TicketId": "",
    "Attendees": []
})

for(var i=0; i<ticketsToAdd.length; i++) {
  for(var y = 0; y<5; y++)
   {
      ticketsToAdd[i]['Attendees'].push({
        "EmailID": "",
        "Phone": "",
        "FirstName": "",
        "LastName": "",
        "Company": ""
       })                          
   }   
}

这会从数组中获取所有对象,并在每个对象中推送5次。