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 相关文章推荐
javascript算法学习(直接插入排序)
Apr 12 Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 Javascript
jQuery获取当前对象标签名称的方法
Feb 07 Javascript
JS创建自定义表格具体实现
Feb 11 Javascript
jquery live()调用不存在的解决方法
Feb 26 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
浅谈webpack4 图片处理汇总
Sep 12 Javascript
JS JQuery获取data-*属性值方法解析
Sep 01 jQuery
vue项目中js-cookie的使用存储token操作
Nov 13 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
ucenter通信原理分析
2015/01/09 PHP
laravel学习教程之关联模型
2016/07/30 PHP
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
Python threading多线程编程实例
2014/09/18 Python
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python新手实现2048小游戏
2015/03/31 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
django框架创建应用操作示例
2019/09/26 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
师范应届生教师求职信
2013/11/05 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
欢迎标语大全
2014/06/21 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
swagger如何返回map字段注释
2021/07/03 Java/Android
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python