JS - 将tree(树形)数据结构格式改为一维数组对象格式(扁平化)
·
需求:将JSON①数据格式输出为JSON②格式。
JSON①:
[
{
sortName:'小明',
sortCode: 'xm',
children:[]
},
{
sortName:'小刚',
sortCode:'xg',
children:[
{
sortName:'小小刚',
sortCode:'xxg'
},
{
sortName:'小小小刚',
sortCode:'xxxg'
}
]
}
],
JSON②:
[
{
sortName:'小明',
sortCode: 'xm',
},
{
sortName:'小刚',
sortCode: 'xg',
},
{
sortName:'小小刚',
sortCode:'xxg',
},
{
sortName:'小小小刚',
sortCode:'xxxg'
}
],
方法1:
treeToOneArr(arr) {
let data = JSON.parse(JSON.stringify(arr)) // 对传入的参数进行深拷贝
let newData = [] // 创建空数组用来接收操作后的新数组
const hasChildren = (item) => { // 递归遍历,把包含children的选项拿出来,push到之前新建的空数组内
(item.children || (item.children = [])).map(v => {
hasChildren(v)
})
delete item.children // 删除原children属性,可选项
newData.push(item)
}
data.map(v => hasChildren(v))
return newData
},
方法2:
getOneArr(arr) {
let tree= JSON.parse(JSON.stringify(arr))
let newData = []
const expanded = datas => {
if (datas&& datas.length > 0){
datas.forEach(e => {
newData.push(e);
expanded(e.children);
})
}
};
expanded(tree);
return newData;
},
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)