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之解决IE下不渲染的bug
Jun 29 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
js面向对象 多种创建对象方法小结
May 21 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
简介AngularJS中使用factory和service的方法
Jun 17 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
javascript闭包概念简单解析(推荐)
Jun 03 Javascript
Node.js学习入门
Jan 03 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
微信小程序后端(java)开发流程的详细步骤
Nov 13 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 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/07/01 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
python中bisect模块用法实例
2014/09/25 Python
python链接Oracle数据库的方法
2015/06/28 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
销售业务员岗位职责
2014/01/29 职场文书
星级党支部申报材料
2014/05/31 职场文书
2014年团支部工作总结
2014/11/17 职场文书
2015年入党决心书
2015/02/05 职场文书
村主任当选感言
2015/08/01 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Python实现仓库管理系统
2022/05/30 Python
nginx之queue的具体使用
2022/06/28 Servers