简体   繁体   English

将json数据推入嵌套数组

[英]Push json data into nested array

Im trying to build this array:我正在尝试构建这个数组:


[{
id: "1", name: labels,
periods: [
{id:"1_1", start: "2018-01-05", end: "2018-01-25"},
{id:"1_2", start: "2018-01-28", end: "2018-02-22"},
{id:"1_3", start: "2018-03-03", end: "2018-03-25"}
]
}];

I have this json data我有这个json数据


labels = ["Workorder 1", ... , "Workorder 10"]
start = ["2019-01-01", ... ,"2019-01-25" ]
end= ["2019-01-10", ... ,"2019-01-25"]

this is how far I got:这是我走了多远:


var arr=[];
for ( var i=0; i<labels.length; i++){
newlab = labels[i];
newid = "id" + [i]; 
newstart = start[i];
newstop = end[i];
arr.push({ id:newid, name:newlab, start:newstart, end:newstop })
};
var data = {data:arr};
console.log(data);

which has this as output:将其作为输出:


data = [
{id: "id0", name: "Workorder 1", start: "2019-01-01", end: "2019-01-10"},
....
{id: "id9", name: "Workorder 10", start: "2019-11-25", end: "2019-01-14"}
]

Thank you for any help感谢您的任何帮助

let labels="test_string",start = [],end=[],arr=[];
var arr=[],periods =[];
for ( var i=0; i<labels.length; i++){
obj = {};
obj.id= "1", obj.name= "labels"
newlab = labels[i];
newid = [i] + "_" + [i];
newstart = start[i];
newstop = end[i];
periods.push({ id:newid, name:newlab, start:newstart, end:newstop })
obj.periods = periods;
arr.push(obj)
};
let data = {data:arr};
console.log(data);

This will Work For you, Try this这对你有用,试试这个

var labels = ["Workorder 1", "Workorder 10"]
var start = ["2019-01-01", "2019-01-25"]
var end = ["2019-01-10", "2019-01-25"]

var obj = {}
var finalArray = []
for (var i = 1; i <= start.length; i++) {
    var first = { id: i, name: 'labels' }
    obj = { ...obj, ...first }
    var periods = { id: i + '_' + i, name: labels[i - 1], start: start[i - 1], end: end[i - 1] }
    if (obj.periods) {
        obj.periods.push(periods)
    } else {
        obj.periods = [periods]
    }
    finalArray.push(obj)
}

var data = { data: finalArray };
console.log("finalOutput.............",data)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM