JS实现水平遍历和嵌套递归操作示例

 更新时间:2019年08月15日 09:16:47   作者:zhensg  
这篇文章主要介绍了JS实现水平遍历和嵌套递归操作,结合实例形式分析了javascript遍历与递归相关操作技巧,需要的朋友可以参考下

本文实例讲述了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();

以上,总结的有意思的逻辑,也是可以简化代码的方法。这样的逻辑还有很多………………

PS:这里再为大家推荐一款JS数组遍历方式分析对比工具供大家参考:

在线JS常见遍历方式性能分析比较工具http://tools.jb51.net/aideddesign/js_bianli

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》、《javascript面向对象入门教程》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • 再谈javascript原型继承

    再谈javascript原型继承

    Javascript原型继承是一个被说烂掉了的话题,但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍《Javascript模式》中关于原型实现继承的几种方法,下面来一一说明下,在最后我根据自己的理解提出了一个关于继承比较完整的实现。
    2014-11-11
  • 探析浏览器执行JavaScript脚本加载与代码执行顺序

    探析浏览器执行JavaScript脚本加载与代码执行顺序

    本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题,通过本文给大家分享浏览器执行JavaScript脚本加载与代码执行顺序,对浏览器执行javascript及执行顺序相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • JavaScript中Array.map()的使用与技巧分享(附实际应用代码)

    JavaScript中Array.map()的使用与技巧分享(附实际应用代码)

    Array.map()适合需要返回新数组、进行链式调用或不修改原数组的场景,它与forEach()的区别在于有返回值,基本语法中,callback函数处理每个元素并返回新值,本文介绍了JavaScript中Array.map()的使用与技巧分享(附实际应用代码),需要的朋友可以参考下
    2025-02-02
  • javascript实现数组扁平化六种技巧总结

    javascript实现数组扁平化六种技巧总结

    这篇文章主要为大家详细介绍了六种javascript中实现数组扁平化的技巧,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2023-12-12
  • JS实现的tab页切换效果完整示例

    JS实现的tab页切换效果完整示例

    这篇文章主要介绍了JS实现的tab页切换效果,涉及javascript基于事件响应动态操作页面元素属性相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • JavaScript 原型链学习总结

    JavaScript 原型链学习总结

    在JavaScript中,一切都是对像,函数是第一型
    2010-10-10
  • el-upload实现上传文件并展示进度条功能

    el-upload实现上传文件并展示进度条功能

    这篇文章主要介绍了el-upload实现上传文件并展示进度条,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • ES6解构赋值(数组,对象,函数)使用详解

    ES6解构赋值(数组,对象,函数)使用详解

    这篇文章主要介绍了ES6解构赋值(数组,对象,函数)使用详解,JavaScript 中最常用的两种数据结构是 Object 和 Array,解构操作对那些具有很多参数和默认值等的函数也很奏效,本文通过实例代码详细讲解需要的朋友可以参考下
    2022-11-11
  • three.js显示中文字体与tween应用详析

    three.js显示中文字体与tween应用详析

    这篇文章主要给大家介绍了关于three.js显示中文字体与tween应用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • js实现Tab选项卡切换效果

    js实现Tab选项卡切换效果

    这篇文章主要为大家详细介绍了js实现Tab选项卡切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10

最新评论