求一个js算法,转换数据格式

vardataList=[
{parent:"广东",child:"深圳",id:01},
{parent:"广东",child:"广州",id:02},
{parent:"广东",child:"东莞",id:03},
{parent:"江西",child:"九江",id:04},
{parent:"江西",child:"南昌",id:05}
]
vargetData=[
{
parent:"广东",
children:[
{name:"深圳",id:01},
{name:"广州",id:02},
{name:"东莞",id:03},
]
},
{
parent:"江西",
children:[
{name:"九江",id:04},
{name:"南昌",id:05}
]
}
]
如上述代码两个数组,怎么简单快速的将dataList转换为getData呢?为什么我觉得很复杂呢,转着转着就感觉有困难了,是不是js基础不扎实呢?如何提高这种数据转换能力呢?望大神指点一下!
开满天机
浏览 468回答 2
2回答

慕运维8079593

如果只有一层的话其实逻辑上只有2个步骤1.提取出不重复parent数组2.匹配parent数组的children实现方式就多了,我提供个简单的vardataList=[{parent:"广东",child:"深圳",id:01},{parent:"广东",child:"广州",id:02},{parent:"广东",child:"东莞",id:03},{parent:"江西",child:"九江",id:04},{parent:"江西",child:"南昌",id:05}]vargetData=dataList.reduce((arr,{parent})=>void(!arr.includes(parent)&&arr.push(parent))||arr,[]).map(parent=>({parent,children:dataList.filter(v=>v.parent===parent)}))console.log(getData)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript