首页 > 其他分享 >对树形结构过滤处理(过滤掉选中文件夹以及子级数据)

对树形结构过滤处理(过滤掉选中文件夹以及子级数据)

时间:2023-12-22 16:34:49浏览次数:42  
标签:node 过滤 tree 文件夹 子级 children condition

点击查看代码
/**
 * 移动文件夹 (不能移动当前文件夹以及子文件夹)
 * @param tree 树形结构
 * @param condition 过滤单条数据
 * @returns
 */
export function excludeNodeAndChildren(tree: any, condition: any) {
  if (!Array.isArray(tree) || typeof condition !== 'object') {
    return tree;
  }
  const result = [];

  for (const node of tree) {
    if (node.id === condition.id && node.pid === condition.pid) {
      continue;
    }
    if (node.id === condition.pid) {
      continue;
    }

    if (Array.isArray(node.children) && node.children.length > 0) {
      const children = excludeNodeAndChildren(node.children, condition);
      if (children.length > 0) {
        node.children = children;
      }
    }

    result.push(node);
  }

  return result;
}

标签:node,过滤,tree,文件夹,子级,children,condition
From: https://www.cnblogs.com/songkomei/p/17921894.html

相关文章

  • git-移除某文件夹的版本控制
    git-移除某文件夹的版本控制如我们把.idea目录误提达到远端。有时候我们一开始在上传项目的时候把某些不必要的文件也添加进了git的版本控制。此时gitignore对这些文件就不起作用了。因此我们要先从git里面把这些文件untracked,然后修改gitignore,最后提交。核心,使用git......
  • SpringBoot系列---【过滤器Filter和拦截器HandlerInterceptor的区别和用法】
    1.作用时机1.1过滤器过滤器(Filter)主要作用在请求到达Servlet或JSP之前,对请求进行预处理,可以对HTTP请求进行过滤、修改。过滤器是基于回调函数实现的,开发人员通过重写doFilter()方法实现过滤逻辑,其主要功能有:权限验证:检查用户是否已经登录或者是否具有相应的权限。数据压......
  • 七、配置 OSPF 针对 Type-3 LSA 进行 过滤实验组网
    1、实验拓扑图2、实验目的全网配置部署运行ospf路由协议,在R2上过滤路由(192.168.1.1/32)3、核心配置<r2>displaycurrent-configuration [V200R003C00]#sysnamer2#snmp-agentlocal-engineid800007DB03000000000000snmp-agent #clocktimezoneChina-Standard-Timem......
  • linux 如何删掉一些特殊字符的文件夹,比如带有空格,单引号,双引号的
    在Linux中删除包含特殊字符(如空格、单引号、双引号)的文件夹,你需要使用转义字符或引号来正确地指定文件夹名。以下是一些常用方法:使用反斜杠(\)转义特殊字符:如果文件夹名包含空格,比如MyFolder,你可以使用\来转义空格:rm-rMy\Folder/对于包含单引号或双引号的文件夹,同样......
  • powershell 作服务端 响应网络(socket tcp)连接 提供文件夹大小查询服务
    包含:端口占用检测心跳包网络断线检测传入的数据是否为合法有效的目录路径检测读取计算文件夹大小(不含软链接|symlink)传回查询到的文件夹大小[cmdletbinding()]Param($Port=8888)$VerbosePreference="Continue"#值或取`SilentlyContinue`,此时需调用脚本时传入`-Ve......
  • 伪造网页数据(每个文件夹抽指定数量的图片并重命名)
    (承接"公共标,特殊标"的结构)1.对于指定父目录结构,每个文件夹抽指定数量的随机图片。importosimportshutilimportrandomdeffind_image_folders(parent_directory):#查找包含图片的文件夹image_folders=[]forroot,dirs,filesinos.walk(parent_direc......
  • vue+element 上传文件及文件夹
    有需求需要做一个上传压缩包及文件夹的需求,记性不好,记录一下。HTML使用的element的upload和form表单,dropdown下拉菜单<div><el-col:span="24"><el-form-itemlabel="材料路径:"prop="fileName"><el-col:span="21&qu......
  • django+vue实现文件夹上传
    最近学django的文件上下传,网上的文件夹上下传压根没有,找了好几个,报错一大堆,没有一个能用,花里胡哨,可气!!!下面这个方法是我刚刚用过的,分享给大家。前端vue非常简单,template部分<inputtype="file"id="twos"webkitdirectory/><el-buttontype="primary"@click="sumfolder">文件夹......
  • git 下载指定文件夹的方法
    有时候一个项目非常大,特别像一些课程源码往往只需要下载一个文件夹。下面是用git下载指定目录的办法。这里以 https://gitee.com/dotnetmoyu/SimpleAdmin.git为例,只下载其中的web文件夹。  git命令如下://克隆元数据到本地,但不开始下载gitclone-nhttps://gitee.......
  • vue上传图片到指定文件夹
    vue代码<template><divclass="app-container"> <divclass="wenben"><el-upload:disabled="dis==0?true:false"class="upload-demo":action="uploadUrl":on-......