zoukankan      html  css  js  c++  java
  • js__之递归

    1. 题目1:     一张纸厚度为0.0001米, 折叠多少次可以超过10000米
    2. 方法一:  for循环:
    3. let a = 0.0001;
          let num = 0;
          for(i=0;;i++){
              a *= 2
              num++;
              if(a > 10000){
                  break;
              }
          }
          console.log(num);
          // 27 次
    4. 方法二: 递归
    5. let a = 0.0001;
          let num = 0;
          function fn(){
              a *= 2   // a += a ,折叠一次
              num ++
              if(a  < 10000){
                  fn()
              } 
              console.log(num);
          }
          fn()
          // 27 次
    6. 题目2  :  改造后端返回过来的 数据
           后端把 所有的评论 数据 都放在一起了,  如果是这样就不能直接渲染,   需要自己  改造一下  ,一级评论 , 二级评论, 三级评论, 四级评论
      image
      被改造后的数据  要达成这样:
      image
    7. 方法一:   使用 for循环  每一次循环 给 当前的对象添加一个  child的数组; 用来放下一级评论:
      找出所有 一级评论:
      image
      找出 二级评论,  并且存在一级对象的  child数组中
      image image
      找出 三级评论, 并且存在二级对象的 child数组中:
      image image

      但是: 如果有 100层 或者 1000层; 用for循环来做, 就会无限嵌套....,  代码重复高  ,  所以 不推荐这种写法...
    8. 方法二:  使用递归函数:
      先 找出 所有 一级评论
      image image

      最后: 使用 递归自调用,
      image
      image

  • 相关阅读:
    三十二、恢复单库单表
    三十一、XBK备份
    三十、分库分表备份脚本
    二十九、mysqldump恢复案例
    二十八、mysqldump备份
    二十七、备份介绍
    二十六:慢日志分析
    二十五、二进制日志之GTID模式
    Trie树
    AC自动机
  • 原文地址:https://www.cnblogs.com/cl1998/p/13197975.html
Copyright © 2011-2022 走看看