data: [{
label: '一级 1',
children: [{
label: '二级 1-1',
children: [{
label: '三级 1-1-1'
}]
}]
}, {
label: '一级 2',
children: [{
label: '二级 2-1',
children: [{
label: '三级 2-1-1'
}]
}, {
label: '二级 2-2',
children: [{
label: '三级 2-2-1'
}]
}]
}, {
label: '一级 3',
children: [{
label: '二级 3-1',
children: [{
label: '三级 3-1-1'
}]
}, {
label: '二级 3-2',
children: [{
label: '三级 3-2-1'
}]
}]
}],
如上 数据,想利用递归遍历成一维数组:
getFlatArr(arr){
return arr.reduce((a, item) => {
let flatArr = [...a, item];
if (item.children) {
flatArr = [...flatArr, ...this.getFlatArr(item.children)];
}
return flatArr;
}, []);
},
这样就能实现上述的需求了