记录 js 过滤到tree上面的多余的数据

代码如下(示例):

 filterTree(arr, ids,first=true) {
   
    if(first){
   //首次传入深度克隆数据防止修改源数据
       arr=JSON.parse(JSON.stringify(arr))
    }
    let emptyArr = [];
    for (let item of arr) {
   
      if (ids.includes(item.id)) {
   
        if (item.children &&Array.isArray(item.children)&& item.children.length > 0) {
   
          item.children = filterTree(item.children, ids,false);
        }
        emptyArr.push(item);
      } else if (item.children&&Array.isArray(item.children) && item.children.length > 0) {
   
        item.children = this.filterTree(item.children, ids,false);
        if (item.children.length) {
   
          emptyArr.push(item);
        }
      }
    }
    return emptyArr;
},


console.log( filterTree(tree, [3,5,2]));

在这里插入图片描述

			
var tree = [
		{
    text: "Parent 1", 
			id: 1,
		   nodes: [
			   {
    text: "Child 1", type: "Child", id: 2,
					nodes: [
						  {
    id: 3,text: "Grandchild 1", type: "Grandchild", 
							nodes: [
							  {
   id: 4, text: "Grandchild 2", type: "Grandchild" }
							] ,
						  }, 
						{
   id: 5, text: "Grandchild 2", type: "Grandchild" },
						{
   id: 9, text: "Grandchild 2-9", type: "Grandchild-9" },
					],
				}, 
				{
   id: 6, text: "Child 2", type: "Child" },
			] ,
		}, 
		{
    id: 7,text: "Parent 2", type: "Parent" }, 
		{
    id: 8,text: "Parent 3", type: "Parent" }
];
			

相关推荐

  1. three.js捋文档记录笔记(五):threejs引入

    2024-01-24 06:20:04       37 阅读
  2. openJudge | 过滤多余空格 C语言

    2024-01-24 06:20:04       47 阅读
  3. B_Tree 数据结构

    2024-01-24 06:20:04       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 06:20:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 06:20:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 06:20:04       87 阅读
  4. Python语言-面向对象

    2024-01-24 06:20:04       96 阅读

热门阅读

  1. 使用时间戳来消费消息(kafka)

    2024-01-24 06:20:04       52 阅读
  2. Kafka消费者提交偏移量

    2024-01-24 06:20:04       57 阅读
  3. Python笔记11-闭包、装饰器和设计模式

    2024-01-24 06:20:04       56 阅读
  4. kafka

    2024-01-24 06:20:04       43 阅读
  5. HTML/CSS实现3D翻转页面效果

    2024-01-24 06:20:04       58 阅读
  6. elementui 表单数据嵌套过深导致校验不了问题解决

    2024-01-24 06:20:04       54 阅读