JS实现水平遍历和嵌套递归操作示例
2019-08-15 09:16
2675 查看
本文实例讲述了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实现多叉树的递归遍历和非递归遍历算法操作示例
- 使用js操作css实现js改变背景图片示例
- JS实现的表格行上下移动操作示例
- 原生JS 实现的input输入时表格过滤操作示例
- Java二叉树搜索树,基本操作及四种遍历非递归实现
- JS实现DOM删除节点操作示例
- 用java实现二叉树相关操作(前序建树,前中后递归非递归遍历,层序遍历)
- 用c语言创建一颗二叉树,用递归方法实现对其进行先序、中序和后序遍历的操作。
- JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
- JS实现数组简单去重及数组根据对象中的元素去重操作示例
- 代码示例:递归遍历文件夹实现目录拷贝
- js实现hashtable的赋值、取值、遍历操作实例详解
- JS实现的添加弹出层并完成锁屏操作示例
- Node.js 使用递归实现遍历文件夹中所有文件
- PHP基于非递归算法实现先序、中序及后序遍历二叉树操作示例
- js与jQuery实现获取table中的数据并拼成json字符串操作示例
- JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
- 二叉树的操作(前,中,后序遍历,非空结点的个数)递归实现
- java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
- Java实现二叉树的建立、计算高度与递归输出操作示例