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 相关文章推荐
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
Feb 22 Javascript
JS DOM 操作实现代码
Aug 01 Javascript
读jQuery之一(对象的组成)
Jun 11 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
Dec 13 Javascript
jquery中常用的函数和属性详细解析
Mar 07 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
Mar 15 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
解决Vue打包后访问图片/图标不显示的问题
Jul 25 Javascript
js针对图片加载失败的处理方法分析
Aug 24 Javascript
Node.js爬虫如何获取天气和每日问候详解
Aug 26 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
图书管理程序(三)
2006/10/09 PHP
PHP+DBM的同学录程序(2)
2006/10/09 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
PHP加密解密实例分析
2015/12/25 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
Python装饰器原理与简单用法实例分析
2018/04/29 Python
django和flask哪个值得研究学习
2020/07/31 Python
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
《雨霖铃》听课反思
2014/02/13 职场文书
测量工程专业求职信
2014/02/24 职场文书
大学信息公开实施方案
2014/03/09 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
感动中国何玥观后感
2015/06/02 职场文书
合作意向书范本
2019/04/17 职场文书