代码
function toFlatness(deepArr = [], hideKeys = []) {
const reg = new RegExp(hideKeys.join('|'))
const list = []
function format(arr = deepArr) {
arr.forEach(item => {
const currentItem = { ...item }
if (hideKeys && hideKeys.length) {
Object.keys(item).forEach(k => {
if (reg.test(k)) {
delete currentItem[k]
}
})
}
list.push(currentItem)
if (item.children) {
format(item.children)
}
})
return list
}
format()
return list
}
适用数据
[{
"value": "一级",
"children": [
{
"value": "二级",
"children": []
},
{
"value": "二级-1",
"children": []
},
{
"value": "二级-2",
"children": []
},
{
"value": "二级-3",
"children": [
{
"value": "三级",
"children": [
{
"value": "四级",
"children": [
{
"value": "五级",
"children": [
{
"value": "六级",
"children": []
}
]
}
]
}
]
}
]
}
]
}]
例子
const result = toFlatness(arr, ['children'])
console.log(JSON.stringify(result, null, 2))