- 场景 需要从叶子结点的上一层文件开始过滤,把树形结构中所有的空文件夹都过滤掉
- 算法如下:
function filterEmptyFolder(arr) {
const str = JSON.stringify(arr);
const temp = filterFileFolder(arr);
if (JSON.stringify(temp) === str) {
return temp;
} else {
return filterEmptyFolder(temp);
}
}
function filterFileFolder(arr) {
const temp = arr.filter((x) => !x.children || x.children.length !== 0);
temp.forEach((x) =>
x.children && x.children.length > 0 && (x.children = filterFileFolder(x.children)));
return temp;
}
使用filterEmptyFolder(待过滤的树)即可!!!