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基础不扎实呢?如何提高这种数据转换能力呢?望大神指点一下!
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
如果只有一层的话其实逻辑上只有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)
添加回答
举报
0/150
提交
取消