javascript - js写一个递归把数据结构重组成另外的结构
天蓬老师
天蓬老师 2017-06-28 09:27:56
0
3
927

现在有以下数据结构:

[{
    id: 1,
    pid: 0,
    name: "年级"
}, {
    id: 2,
    pid: 1,
    name: "一年级"
}, {
    id: 3,
    pid: 1,
    name: "二年级"
}, {
    id: 4,
    pid: 0,
    name: "专业"
}, {
    id: 5,
    pid: 4,
    name: "单片机开发"
}]

写一个JS方法,将其转换成以下格式数据:

[{
    id: 1,
    pid: 0,
    name: "年级",
    children: [{
        id: 2,
        pid: 1,
        name: "一年级"
    }, {
        id: 3,
        pid: 1,
        name: "二年级"
    }]
}, {
    id: 4,
    pid: 0,
    name: "专业",
    children: [{
        id: 5,
        pid: 4,
        name: "单片机开发"
    }]
}]
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
Ty80

雷雷

学习ing

雷雷

某草草

参考一下

var sortedData = data.reduce((result, item) => {
  result[item.id] = Object.assign({}, item)
  return result
}, [])

var result = sortedData.reduce((result, item) => {
  if (item.pid === 0) {
    result.push(item)
  } else {
    if (sortedData[item.pid].children) {
      sortedData[item.pid].children.push(item)
    } else {
      sortedData[item.pid].children = [item]
    }
  }
  return result
}, [])
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!