javascript - js数据结构转换
伊谢尔伦
伊谢尔伦 2017-04-11 12:56:22
[JavaScript讨论组]

如何用ES5将形如以下的数据结构:

[{obj0:"2016-12-01",obj1:"交通事故",obj2:"218"},{obj0:"2016-12-01",obj1:"医疗事故",obj2:"1"},{obj0:"2016-12-02",obj1:"交通事故",obj2:"200"},{obj0:"2016-12-02",obj1:"医疗事故",obj2:"5"}]

转化成

[{'2016-12-01':['交通事故':'218','医疗事故':'1']},{'2016-12-02':['交通事故':'200','医疗事故':'5']}]

这样的结构呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
迷茫

题主你最后的那个结构怪怪的

var data = [{obj0:"2016-12-01",obj1:"交通事故",obj2:"218"},{obj0:"2016-12-01",obj1:"医疗事故",obj2:"1"},{obj0:"2016-12-02",obj1:"交通事故",obj2:"200"},{obj0:"2016-12-02",obj1:"医疗事故",obj2:"5"}];
var res = {};//字典
data.forEach(function(item){
  if(!res[item.obj0]){//如果不存在对应的键值对,则创建一个
    res[item.obj0]=[];
   }
   var obj = {}; 
   obj[item.obj1] = item.obj2;
   res[item.obj0].push(obj);
});

这样就能得到一个对象,跟你要的结构差不多了,后面转化我就不写了。

天蓬老师
let data = [{obj0:"2016-12-01",obj1:"交通事故",obj2:"218"},{obj0:"2016-12-01",obj1:"医疗事故",obj2:"1"},{obj0:"2016-12-02",obj1:"交通事故",obj2:"200"},{obj0:"2016-12-02",obj1:"医疗事故",obj2:"5"}],
    res = {};
for (let item of data) {
    let obj = res[item.obj0] || {};
    obj[item.obj1] = item.obj2;
    res[item.obj0] = obj;
}
console.log(JSON.stringify(res))
// {"2016-12-01":{"交通事故":"218","医疗事故":"1"},"2016-12-02":{"交通事故":"200","医疗事故":"5"}}
PHP中文网

现在的问题咋越来越水了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号