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 相关文章推荐
jquery插件开发方法(初学者)
Feb 03 Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 Javascript
程序员必知35个jQuery 代码片段
Nov 05 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
AngularJS实现的回到顶部指令功能实例
May 17 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
Nov 24 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
javascript中join方法实例讲解
Feb 21 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
Vue 打包体积优化方案小结
May 20 Javascript
利用JavaScript为句子加标题的3种方法示例
Jan 05 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
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
python实现学生管理系统
2018/01/11 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
京东国际站:JOYBUY
2017/11/23 全球购物
英国团购网站:Groupon英国
2017/11/28 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
2015年暑期见闻
2015/07/14 职场文书
Oracle笔记
2021/04/05 Oracle
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技