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的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
基于JQuery实现CheckBox全选全不选
Jun 27 Javascript
Highcharts 非常实用的Javascript统计图demo示例
Jul 03 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
Mar 31 Javascript
Vue2仿淘宝实现省市区三级联动
Apr 15 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
详解使用mocha对webpack打包的项目进行"冒烟测试"的大致流程
Apr 27 Javascript
React中使用Vditor自定义图片详解
Dec 25 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
Feb 08 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面向对象中的魔术方法中文说明
2014/03/04 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
<script defer> defer 是什么意思
2009/05/10 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
js 幻灯片的实现
2011/12/06 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
python多进程使用函数封装实例
2020/05/02 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
美国手机支架公司:PopSockets
2019/11/27 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
服装行业创业计划书范文
2014/02/05 职场文书
电焊工岗位职责
2014/03/06 职场文书
会议邀请函
2015/01/30 职场文书
会计岗位职责范本
2015/04/02 职场文书
React配置子路由的实现
2021/06/03 Javascript
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers