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 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
May 24 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
Oct 08 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 Javascript
AngularJs $parse、$eval和$observe、$watch详解
Sep 21 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
js仿搜狐视频记录片列表展示效果
May 30 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 Javascript
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
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概述.
2006/10/09 PHP
php的access操作类
2008/04/09 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
利用python获得时间的实例说明
2013/03/25 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python类属性的延迟计算
2016/10/22 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
python多线程实现TCP服务端
2019/09/03 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
django实现后台显示媒体文件
2020/04/07 Python
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
三维科技面试题
2013/07/27 面试题
学习新党章思想汇报
2014/01/09 职场文书
教师对学生的评语
2014/04/28 职场文书
应届生求职信范文
2014/05/26 职场文书
体育教师求职信
2014/06/30 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
债务纠纷代理词
2015/05/25 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书