国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - js寫一個遞歸把數據結構重組成另外的結構

瀏覽:172日期:2023-05-01 11:22:51

問題描述

現在有以下數據結構:

[{ 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: '單片機開發' }]}]

問題解答

回答1:

var list = [{ 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: '單片機開發'}];function parseList (list) { var map = {}; list.forEach(function (item) {if (!map[item.id]) { map[item.id] = item; } }); list.forEach(function (item) {if (item.pid != 0) { map[item.pid].chidren ? map[item.pid].chidren.push(item) : map[item.pid].chidren = [item];} }); return list.filter(function (item) {return item.pid === 0; });}var newList = parseList(list);回答2:

var list = [ { 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: '單片機開發' }];// 生成查找表,可以按 id 查到節點const dict = list.reduce((all, item) => { all[item.id] = item; return all;}, {});// 由于原始數據沒有 id 為 0 的根節點,// 這里模擬一個,最終它的 children 就是實際的所有根節點var root = { id: 0};dict[0] = root;// 循環添加關系list.forEach(item => { const parent = dict[item.pid]; // 確保父節點的 children 存在 parent.children = parent.children || []; parent.children.push(item);});// 輸出結果 root.children// 注意,root 不是結果,root.children 才是console.log(JSON.stringify(root.children, null, 4));

javascript - js寫一個遞歸把數據結構重組成另外的結構

回答3:

參考一下

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}, [])

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 美女131爽爽爽做爰中文视频 | 日韩一区二区中文字幕 | 中文国产日韩欧美视频 | 中文字幕一级片 | 免费永久国产在线视频 | 亚洲一区二区三区在线 | 99视频在线永久免费观看 | 国产成人欧美视频在线 | 大尺度福利视频在线观看网址 | 国产精品18久久久久网站 | 最新亚洲精品国自产在线观看 | 国产免费一区二区三区 | 99国产精品高清一区二区二区 | 欧美激情视频在线观看一区二区三区 | 中文字幕天堂久久精品 | 日本精品一区二区三区在线 | 欧美一区二区三区在线观看免费 | 天天综合天天看夜夜添狠狠玩 | 午夜毛片免费观看视频 | 亚洲一级黄色毛片 | 国产精品夜色视频一级区 | 亚洲视频精品在线 | 亚洲视频中文字幕在线观看 | 日本加勒比视频 | 成人区精品一区二区毛片不卡 | 午夜精品尤物福利视频在线 | 亚洲最大激情中文字幕 | 成年女人免费毛片视频永久 | 日本高清色本免费现在观看 | 多人伦精品一区二区三区视频 | 99热官网| 情侣偷偷看的羞羞视频网站 | 农村寡妇野外情一级毛片 | 国产专区第一页 | 这里只有久久精品视频 | 日本精品中文字幕有码 | 成人看片黄a在线观看 | 成网站在线观看人免费 | 亚洲精品色综合色在线观看 | 国产一级一级 | 国产高清美女一级毛片久久 |