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 am using Angular 2+ ,

The api json response is like below,

{
 data:[
   {name: "2020-04-28", value: "1", label: "current"}
   {name: "2020-04-28", value: "2", label: "target"}
   {name: "2020-04-29", value: "2", label: "current"}
   {name: "2020-04-29", value: "3", label: "target"}
   {name: "2020-04-30", value: "6", label: "current"}
   {name: "2020-04-30", value: "7", label: "target"}
 ]
}

I have to change above api responce format into,

  {
   data: [
    {
      name: "Current",
      value: [1, 2, 6]
    },
    {
      name: "Target",
      value: [2, 3, 7]
    }
  ]
 }

Can anybody help me to change the format of the json response and please give me the explanation for me to understand the code.

See Question&Answers more detail:os

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

1 Answer

It might be naive and non-optimized approach, but it works.

const data = {
    data:[
      {name: "2020-04-28", value: "1", label: "current"},
      {name: "2020-04-28", value: "2", label: "target"},
      {name: "2020-04-29", value: "2", label: "current"},
      {name: "2020-04-29", value: "3", label: "target"},
      {name: "2020-04-30", value: "6", label: "current"},
      {name: "2020-04-30", value: "7", label: "target"}
    ]
   };

let newData = []
data.data.forEach(e => {
    if(newData.length == 0){
        newData.push({
            name: e.label,
            value: [e.value]
        });
    } else {
        let foundIndex = newData.findIndex(fi => fi.name === e.label);
        if(foundIndex >= 0){
            newData[foundIndex].value.push(e.value);
        } else{
            newData.push({
                name: e.label,
                value: [e.value]
            });
        }
        
    }
});
console.log(newData);

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