JS实现水平遍历和嵌套递归操作示例


Posted in Javascript onAugust 15, 2019

本文实例讲述了JS实现水平遍历和嵌套递归操作。分享给大家供大家参考,具体如下:

程序中存在着一些有意思的逻辑,比如多层嵌套可以用递归遍历,比如同层的if else可以用数组遍历。

下面举例说明,多层嵌套的if else想要递归遍历需要写成下面的形式,以及用特定形式的递归遍历:

多层嵌套的if else转写成的函数

let p1 = false,
p2 = true,
p3 = false;
let test = function() {
    if (p1) {
      return '终止1';
    } else {
      return function() {
        if (p2) {
          return '终止2'
        } else {
          return function() {
            if (p3) {
              return '终止3'
            }
          }
        }
      }
    }
}

对多层嵌套的遍历:

function yunxing1() {
    while (test()) {
      test = test()
      if (typeof test === 'string') {
        alert(test)
        return '终止'
      }
    }
}
yunxing1()

同层多个if else改写的函数以及遍历方法

let i = 1,
a = 2,
b = 3;
function simpleVlidate() {
    let varr = [];
    varr.push(() => {
      if (i === 1) {
        return '不能等于1'
      }
    })
    varr.push(() => {
      if (a === 2) {
        return '不能等于2'
      }
    })
    varr.push(() => {
      if (b === 3) {
        return '不能等于3'
      }
    })
    return varr
}
let arrs = simpleVlidate();
function yunxing() {
    for (let i = 0, fn; fn = arrs[i++];) {
      if (fn()) {
        alert(fn())
        return;
      }
    }
    console.log(343433333333)
}
yunxing();

以上,总结的有意思的逻辑,也是可以简化代码的方法。这样的逻辑还有很多………………

Javascript 相关文章推荐
如何使Chrome控制台支持多行js模式——意外发现
Jun 13 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
Aug 15 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
Javascript解析URL方法详解
Dec 05 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 Javascript
vue路由结构可设一层方便动态添加路由操作
Aug 31 Javascript
原生js实现表格翻页和跳转
Sep 29 Javascript
js实现自定义滚动条的示例
Oct 27 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 #Javascript
浅析Vue中拆分视图层代码的5点建议
Aug 15 #Javascript
vue的keep-alive用法技巧
Aug 15 #Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 #Javascript
Vue触发隐藏input file的方法实例详解
Aug 14 #Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 #Javascript
微信小程序之数据绑定原理解析
Aug 14 #Javascript
You might like
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
RC4文件加密的python实现方法
2015/06/30 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
演讲稿怎么写
2014/01/07 职场文书
军人违纪检讨书
2014/02/04 职场文书
会计岗位描述
2014/02/22 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python