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文件的代码
Jul 18 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
Jun 27 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
Oct 22 Javascript
javascript转换日期字符串为Date日期对象的方法
Feb 13 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
mpvue构建小程序的方法(步骤+地址)
May 22 Javascript
Vue头像处理方案小结
Jul 26 Javascript
VueJS 取得 URL 参数值的方法
Jul 19 Javascript
vue 中几种传值方法(3种)
Nov 12 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
mysql limit查询优化分析
2008/11/12 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
javascript测试题练习代码
2012/10/10 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
python判断字符串是否纯数字的方法
2014/11/19 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
详解Python核心对象类型字符串
2018/02/11 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
市场营销专科应届生求职信
2013/11/24 职场文书
护理专业自荐信
2013/12/03 职场文书
少先队入队活动方案
2014/02/08 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
汶川大地震感悟
2015/08/10 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
你知道Java Spring的两种事务吗
2022/03/16 Java/Android