Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I tried by using Object.keys() to convert the object

var obj1={
    "jan": {
        "COAL": "25"
    },
    "feb": {
        "ROM": "50",
        "WASTE": "55"
    },
    "april": {
        "COAL": "60"
    }
}

to

var obj2=[
    {
        "month": "jan",
        "product": "COAL",
        "quantity": "25"
    },
    {
        "month": "feb",
        "product": "ROM",
        "quantity": "50"
    },
    {
        "month": "feb",
        "product": "WASTE",
        "quantity": "55"
    },
    {
        "month": "april",
        "product": "COAL",
        "quantity": "60"
    }
]

but failed in the middle as I'm not able to calculate the properties say for example in "feb" there are two products "ROM" and "WASTE", but this can go upto 3 or 4. Can anyone please suggest possible solution for this problem?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
161 views
Welcome To Ask or Share your Answers For Others

1 Answer

This will do:

var res = []
for(i in obj1){
 var rowObj = obj1[i];
 for(j in rowObj){
     var newObj = {'month' : i, 'product' : j, 'quantity' : rowObj[j]}
     res.push(newObj);
 }
}
console.log(res);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...