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 相关文章推荐
js escape,unescape解决中文乱码问题的方法
May 26 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
Aug 31 Javascript
jQuery实现的网页换肤效果示例
Sep 20 Javascript
jQuery事件绑定方法学习总结(推荐)
Nov 21 Javascript
jQuery实现的分页功能示例
Jan 22 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 Javascript
OpenLayer学习之自定义测量控件
Sep 28 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
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
python使用range函数计算一组数和的方法
2015/05/07 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
护理毕业生自我鉴定
2014/02/11 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
迎新生标语大全
2014/10/06 职场文书
爱情保证书
2015/01/17 职场文书
投诉信范文
2015/07/02 职场文书
老干部座谈会主持词
2015/07/03 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
Python pandas求方差和标准差的方法实例
2021/08/04 Python
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
SpringBoot Http远程调用的方法
2022/08/14 Java/Android