首页 > 编程语言 >JavaScript递归按条件过滤掉子级数据

JavaScript递归按条件过滤掉子级数据

时间:2024-10-21 08:49:24浏览次数:9  
标签:node 掉子级 递归 JavaScript length newTree deleteChildren 过滤 children

有一个子父级树形结构的数据,现需要递归遍历,找到类型为‘1’的数据,过滤子级,最后返回树形结构数据

代码如下

//调用方法,返回按要求过滤后的数据
const newArr= this.clearChildrenOfTypeIndex(arr)



//定义过滤方法
clearChildrenOfTypeIndex(tree) {
//避免原始数组被直接修改
  const newTree = JSON.parse(JSON.stringify(tree))
  for (let i = 0; i < newTree.length; i++) {
    this.deleteChildren(newTree[i])
  }
  return newTree
},

//递归
deleteChildren (node) {
 
    if (node.type === '1' && node.children) {
        //删除子级
      node.children = []
    }

  if (node.children && node.children.length > 0) {
    for (let i = 0; i < node.children.length; i++) {
      this.deleteChildren(node.children[i], filterType)
    }
  }
},

标签:node,掉子级,递归,JavaScript,length,newTree,deleteChildren,过滤,children
From: https://blog.csdn.net/qq_44989271/article/details/143034119

相关文章

  • 使用 JavaScript (Node.js) 实现验证码识别与自动化登录
    安装所需依赖首先,确保你已经安装了Node.js。然后,使用npm安装所需的库:bashnpminstallaxiosjimptesseract.js2.下载验证码图片使用axios下载验证码图片并保存到本地:更多内容联系1436423940javascriptconstfs=require('fs');constaxios=require('axios');......
  • 函数、递归和递推
    函数数组可以作为形式参数使用,数组作形式参数的时候真正的形式参数不是数组而是一个可以当作数组使用的变量,数组形式参数里包含的存储区都不是被调用函数提供的,声明数组形式参数的时候可以省略其中包含的存储区个数(写或不写没任何区别)。数组形式参数需要配合一个整数类型的形式......
  • 关于递归问题的复杂度计算
    背景:前段时间在背八股,手撕快速排序,算法时间复杂度为\(O(nlogn)\),没想太多,记个结论就pass,和当初上算法课的时候一样;然后做小红书笔试题的时候,有一道题是这样:voidfunc(n){if(n==1){printf("good\n");}func(n-1);func(n-1);}    也是问时间复......
  • WebRTC JavaScript API使用和介绍
    目录API列表API列表WebRTCJavaScriptAPI是WebReal-TimeCommunication(WebRTC)技术的核心,它允许网页应用实现浏览器间的实时音频、视频通信及数据共享,无需依赖插件。navigator.mediaDevices.getUserMedia()作用:请求访问用户的媒体设备(如摄像头和麦克风)。代码示例......
  • Day20--递归
    Day20--递归A方法调用B方法容易理解,递归就是A方法调用A方法,即自己调用自己。利用递归可以用简单程序解决复杂问题,通常把大型复杂问题层层转化为与原问题相似的规模较小问题求解,递归策略用少量程序描述解题过程所需多次重复计算,大大减少程序代码量。递归的能力在于用有限......
  • JavaScript事件循环:一杯咖啡的时间,搞懂主线程都经历了什么?
    我们今天来聊聊JavaScript事件循环。虽然这个词听起来很高深,但你可以把它想象成一个奶茶店里排队买奶茶的过程。主线程就像奶茶店的唯一一个店员,任务就是那些排队的订单,而JavaScript的事件循环就是这个店员处理订单的工作方式。先看代码,咱们慢慢聊:console.log('1:进店......
  • JavaScript 的基础语法和数据类型的概述
    JavaScript是一种广泛使用的编程语言,主要用于Web开发。它拥有简洁的语法和丰富的功能。以下是JavaScript的基础语法和数据类型的概述。基础语法变量声明使用var、let或const关键字声明变量。varname="Alice";letage=25;constpi=3.14;数据类型J......
  • javascript输出金字塔
    <script>//首先创造一个空的变量letstr=''letlevel=prompt("输入金字塔的层数")//获取输入的纯数字,其余情况都转化为NaNlevel=parseInt(level)&&Number(level)//判断用户的输入是否合法if(isNaN(level)){alert("金字塔的数......
  • JavaScript中的this指向
    1.函数在调用时,JavaScript会默认给this绑定一个值;2.this的绑定和定义的位置(编写的位置)没有关系;3.this的绑定和调用方式以及调用的位置有关系;4.this是在运行时被绑定的;this的绑定规则规则一:默认绑定在函数独立调用时使用默认绑定,可以理解为函数没有被绑定到某个对象上常见......
  • 递归的优缺点以及应用
    目录Java中的递归概念例子1.斐波那契数列(FibonacciSequence)2.汉诺塔(TowerofHanoi)3.数字之和(SumofDigits)4.回文检查(PalindromeCheck)优点缺点解决递归缺点的方法Java中的递归概念递归是计算机科学中一种重要的编程技巧,它是指一个方法直接或间接地调用自......