JS 树形结构过滤空文件夹的方法

297 阅读1分钟
  • 场景 需要从叶子结点的上一层文件开始过滤,把树形结构中所有的空文件夹都过滤掉
  • 算法如下:
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(待过滤的树)即可!!!

本文参考:blog.csdn.net/qq_43633053…