当前位置: 首页 > news >正文

#Js篇:js里面递归的理解

定义:

递归是一种编程技术,它是指一个函数在其定义内部调用自身的过程。

特点:
  1. 一个问题可以分解为更小的问题用同样的方法解决;
  2. 分解后的子问题求解方式一样,不同的是数据规模变小;
  3. 存在递归终止条件
作用:
递归拼接树型结构
 const rootList = [{ id: 1, parent: null, text: '菜单1' },{ id: 11, parent: 1, text: '菜单1-1' },{ id: 12, parent: 1, text: '菜单1-2' },{ id: 2, parent: null, text: '菜单2' },{ id: 21, parent: 2, text: '菜单2-1' },{ id: 22, parent: 2, text: '菜单2-2' },{ id: 3, parent: null, text: '菜单3' },{ id: 31, parent: 3, text: '菜单3-1' }]function getTreeList(rootList, id, list) {for (const item of rootList) {if (item.parent === id) {list.push(item)}}for (const x of list) {x.children = []getTreeList(rootList, x.id, x.children)if (x.children.length === 0) {delete x.children}}console.log('list: ', list);}let res = getTreeList(rootList, null, [])// 

在这里插入图片描述

求1-100的和
  function getSum100(num) {if (num === 1) {return 1} else {return num + getSum100(num - 1)}}let sum100 = getSum100(100)console.log('sum100: ', sum100);
http://www.lryc.cn/news/296770.html

相关文章:

  • Qt博客目录
  • 【C++】初识模板:函数模板和类模板
  • 记录Dynamo每个节点的运行时间
  • 探索设计模式的魅力:代理模式揭秘-软件世界的“幕后黑手”
  • AD9361多片同步设计方法
  • 2024/2/7 图的基础知识
  • 1897_野火FreeRTOS教程阅读笔记_链表
  • CTFshow web(php命令执行 45-49)
  • 飞天使-linux操作的一些技巧与知识点8-zabbix6.0 容器搭建
  • 51 单片机入门 400 例
  • 贪心算法的应用
  • CentOS基于volatility2的内存取证实验
  • HLS 三角函数报错:undefined reference to ‘cordic_apfixed::circ_table_arctan_128‘
  • 【汇编】简单的linux汇编语言程序
  • Fink CDC数据同步(四)Mysql数据同步到Kafka
  • Adb offline疑难杂症解决方案大全记录
  • 详述FlinkSql Join操作
  • Ajax+JSON学习二
  • STM32单片机的基本原理与应用(六)
  • 《MySQL 简易速速上手小册》第4章:数据安全性管理(2024 最新版)
  • VUE学习之路——列表渲染
  • CentOS 安装 redis 7.2
  • 运维自动化bingo前端
  • Project2013下载安装教程,保姆级教程,附安装包和工具
  • 【机器学习与自然语言处理】预训练 Pre-Training 各种经典方法的概念汇总
  • Mac电脑如何通过终端隐藏应用程序?
  • linker list
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • 【开源】基于JAVA+Vue+SpringBoot的数据可视化的智慧河南大屏
  • 页面单跳转换率统计案例分析