JS实现 JSON扁平数据转换树状数据
后台我拿的数据是这样的格局:
[ {id:1 , parentId: 0, name: ‘‘, level: 0}, {id:2 , parentId: 0, name: ‘‘, level: 0}, {id:3 , parentId: 2, name: ‘‘, level: 1}, {id:4 , parentId: 2, name: ‘‘, level: 1}, {id:5 , parentId: 4, name: ‘‘, level: 2}, ]
转换后的数据差不久不多就是这样的格局
{ [ { id: 1, name: ‘‘ }, { id: 2, name: ‘‘, children: [ { id: 3 }, { id: 4, children: [ { id: 5 } ] } ] }, ] }
js转换方法
后台获取数组 jsonData 然后转换成树状的方法
//吧后台json转换成树状形式 format(jsonData) { var result = [], temp = {}, i = 0, j = 0, len = jsonData.length for (; i < len; i++) { temp[jsonData[i][‘menuId‘]] = jsonData[i] // 以id作为索引存储元素,可以无需遍历直接定位元素 } for (; j < len; j++) { var currentElement = jsonData[j] var tempCurrentElementParent = temp[currentElement[‘parentId‘]] // 姑且变量里面确当前元素的父元素 parentId 父级ID if (tempCurrentElementParent) { // 如果存在父元素 if (!tempCurrentElementParent[‘children‘]) { // 如果父元素没有chindren键 tempCurrentElementParent[‘children‘] = [] // 设上父元素的children键 } tempCurrentElementParent[‘children‘].push(currentElement) // 给父元素加上当前元素作为子元素 } else { // 不存在父元素,,意味着当前元素是一级元素 result.push(currentElement); } } return result; }
JS实现 JSON扁平数据转换树状数据
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30757.html
- 上一篇:专为远程登录会话和其他网络服务提供安全性的协议
- 下一篇:webpack之clean