[英]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.