JS實現(xiàn)水平遍歷和嵌套遞歸操作示例
本文實例講述了JS實現(xiàn)水平遍歷和嵌套遞歸操作。分享給大家供大家參考,具體如下:
程序中存在著一些有意思的邏輯,比如多層嵌套可以用遞歸遍歷,比如同層的if else可以用數(shù)組遍歷。
下面舉例說明,多層嵌套的if else想要遞歸遍歷需要寫成下面的形式,以及用特定形式的遞歸遍歷:
多層嵌套的if else轉(zhuǎn)寫成的函數(shù)
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改寫的函數(shù)以及遍歷方法
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();
以上,總結(jié)的有意思的邏輯,也是可以簡化代碼的方法。這樣的邏輯還有很多………………
PS:這里再為大家推薦一款JS數(shù)組遍歷方式分析對比工具供大家參考:
在線JS常見遍歷方式性能分析比較工具:http://tools.jb51.net/aideddesign/js_bianli
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《javascript面向?qū)ο笕腴T教程》、《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
filters.revealTrans.Transition使用方法小結(jié)
有看到幻燈片調(diào)用會用到divid.filters.revealTrans.Transition=Math.floor(Math.random()*23)和divid.filters.revealTrans.apply(),那么這兩個都是什么意思呢?2010-08-08javascript獲取系統(tǒng)當(dāng)前時間的方法
這篇文章主要介紹了javascript獲取系統(tǒng)當(dāng)前時間的方法,格式為:2015年11月19日 星期四09:21:05,需要的朋友可以參考下2015-11-11微信小程序監(jiān)聽用戶登錄事件的實現(xiàn)方法
這篇文章主要介紹了微信小程序監(jiān)聽用戶登錄事件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11詳解webpack 入門總結(jié)和實踐(按需異步加載,css單獨打包,生成多個入口文件)
本篇文章主要介紹了webpack 入門總結(jié)和實踐(按需異步加載,css單獨打包,生成多個入口文件) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06使用smartupload組件實現(xiàn)jsp+jdbc上傳下載文件實例解析
這篇文章主要介紹了使用smartupload組件實現(xiàn)jsp+jdbc上傳下載文件實例解析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-01-01微信小程序?qū)崿F(xiàn)2048小游戲的詳細(xì)過程
這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)2048小游戲的相關(guān)資料,文中將實現(xiàn)的代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2021-09-09