树形结构格式转换成一维数组对象格式
具体需求:将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;
},