亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求一個js算法,轉換數據格式

求一個js算法,轉換數據格式

開滿天機 2019-05-10 09:15:15
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)
                            
查看完整回答
反對 回復 2019-05-10
  • 2 回答
  • 0 關注
  • 492 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號