前言
比如一个这样的数据,我们不想展示全部,只要前两层数据,那么就会用到下面的方法了
const data = [
{
label: '1',
children: [
{
label: '1-1',
children: [
{
label: '1-1-1'
},
{
label: '1-1-2'
}
]
},
{
label: '1-2',
children: [
{
label: '1-2-1'
},
{
label: '1-2-2'
}
]
}
]
},
{
label: '1',
children: [
{
label: '1-1',
children: [
{
label: '1-1-1'
},
{
label: '1-1-2'
}
]
},
{
label: '1-2',
children: [
{
label: '1-2-1'
},
{
label: '1-2-2'
}
]
}
]
}
]
处理方法
/**
* @function 获取嵌套数据的指定层级的数据
* @param data 嵌套数据
* @level 获取多少层
* @flag 当前递归到那一层
* @return 返回指定层级的数据
*/
function getLevelData (data, level, currentLevel) {
if (level < currentLevel) return []
data?.forEach(item => {
// 遍历到指定层级
let cur = currentLevel
if (cur >= level) {
delete item.children
} else {
getLevelData(item.children, level, ++cur)
}
})
}
使用
// 只需要第二个参数,输入我们想要的层级即可,返回指定层级的数据
getLevelData(data, 2, 1)
console.log(data);