为了账号安全,请及时绑定邮箱和手机立即绑定

如何将接收到的对象转换为具有所需数据的另一个对象?

如何将接收到的对象转换为具有所需数据的另一个对象?

慕标5832272 2021-12-23 19:48:41
我得到以下格式的 JSON:卖家按名称和日期分组,显示他们当天的销售量。{    "Isabela Alves de Quadros":{       "2019-10-22":4500,      "2019-10-25":120,      "2019-11-04":60   },   "Naiara":{       "2019-10-25":5000,      "2019-10-28":10,      "2019-10-31":6000   },   "Nathália":{       "2019-10-17":15,      "2019-11-01":125   }}我想把它变成一个对象,如下所示:{ {  name: "Isabela Alves de Quadros",  data: [null, 4500, 120, null, null, null, 60] }, {  name: "Naiara",  data: [null, null, 5000, 10, 6000, null, null] }, {  name: "Nathália",  data: [15, null, null, null, null, 125, null] }}没有价值的数据,我放空。有谁知道如何做到这一点或有想法要展示?已经尝试制作地图了,但是没有用,找了好几个地方,都没有找到,可能是找错了方法。但提前感谢您能提供帮助。
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

// 做起来很快。可能不是一个有效的解决方案。// 在http://playcode.io 中运行


const data = { 

   "Isabela Alves de Quadros":{ 

      "2019-10-22":4500,

      "2019-10-25":120,

      "2019-11-04":60

   },

   "Naiara":{ 

      "2019-10-25":5000,

      "2019-10-28":10,

      "2019-10-31":6000

   },

   "Nathália":{ 

      "2019-10-17":15,

      "2019-11-01":125

   }

}


console.log(data)

var names = Object.keys(data);

console.log(names);


var dates = Object.values(data);

console.log(dates);


var allDates =  dates.map((item) => (Object.keys(item)));

console.log(allDates);


var merged = ([].concat.apply([], allDates));

var dist = new Set(merged);

console.log(dist);


var finalData = [];


for(let name of names)

  var dates = [];

  for (let [key, value] of dist.entries())

  {

     var tempDates = data[name];

     if(tempDates[key] != undefined){

        dates.push(tempDates[key]);

      }

      else{

        dates.push(null);

      }

  }

  finalData.push( {name: name, data:dates})


console.log(finalData);



查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信