簡體   English   中英

如何在 javascript 的循環中創建多維數組/對象

[英]How to create multidimensional array/object in a loop in javascript

可能是一個簡單的問題,但我無法弄清楚。

我嘗試像這樣創建一個 object:

var labelTestData = [
    {label: "person a", times: [{"starting_time": 1355752800000, "ending_time": 1355759900000}, {"starting_time": 1355767900000, "ending_time": 1355774400000}]},
    {label: "person b", times: [{"starting_time": 1355759910000, "ending_time": 1355761900000}, ]},
    {label: "person c", times: [{"starting_time": 1355761910000, "ending_time": 1355763910000}]}
  ];

我需要在這樣的循環中執行此操作:

let test2Array = [];    
resp.results.forEach(function(r) {
    test2Array = [
    label: r.person,
    times:{
       "starting-time": new Date(r.birthdate).getTime(),
       "ending-time": new Date(((r.birthdatedt.addDays(119)).toISOString()).split('T')[0]) .getTime()
    }]
})

我快到了,但是如何向“人”添加更多“時間”,以便結果如下:

 {label: "person a", times: [{"starting_time": 1355752800000, "ending_time": 1355759900000}, {"starting_time": 1355767900000, "ending_time": 1355774400000}]},

我嘗試使用 if 構造來做到這一點。 所以我第一次推人也是第一次。 第二次(或更多)我想添加額外的時間。

希望這段代碼回答你的問題:

let test2Array = [];    
resp.results.forEach(function(r) {
    test2Array.push({
       label: r.person,
       times: [{
       "starting-time": new Date(r.birthdate).getTime(),
       "ending-time": new Date(((r.birthdatedt.addDays(119)).toISOString()).split('T')[0]) .getTime()
    }]})
})

下次您想為某人添加其他時間時,您可以執行以下操作:

const index = test2Array.findIndex(item => item.label == "the person you want to target")
test2Array[index].times.push({
       "starting-time": new Date(r.birthdate).getTime(),
       "ending-time": new Date(((r.birthdatedt.addDays(119)).toISOString()).split('T')[0]) .getTime()
    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM