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 相关文章推荐
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
jQuery实现密保互斥问题解决方案
Aug 16 Javascript
调试代码导致IE出错的避免方法
Apr 04 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
Jul 02 Javascript
JS实现的表格行鼠标点击高亮效果代码
Nov 27 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
vue项目实战总结篇
Feb 11 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
vue-父子组件和ref实例详解
Nov 10 Javascript
实现vuex原理的示例
Oct 21 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHP编程函数安全篇
2013/01/08 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
php车辆违章查询数据示例
2016/10/14 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
什么时候用assert
2015/05/08 面试题
幼儿园家长评语
2014/02/10 职场文书
倡议书范文
2014/04/16 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
护士辞职信怎么写
2015/02/27 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
母亲去世追悼词
2015/06/23 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电