应该不是首发,既然用到我就写了一个做个记录。
这是element-ui Tree组件需要的数据类型:
[{
label: '一级 1',
children: [{
label: '二级 1-1',
children: [{
label: '三级 1-1-1'
}]
}]
},
...
]
对比一下常规的json结构不难发现 其实就是把json的key和vlaue组一下放到label里,再把array递归到children里就完成映射了
效果如下
代码(注释)
通用函数
function traverseObject(obj) {
let mlist = []; // 主树
for (let key in obj) { // 遍历对象
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object') { // array or object
mlist.push({label:key, children:traverseObject(obj[key])});
} else {
mlist.push({label:key+': '+obj[key]}); // 叶子节点
}
}
}
return mlist; // 返回主树
}