本文實(shí)例講述了JS實(shí)現(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' } } } } }}對(duì)多層嵌套的遍歷:
function yunxing1() { while (test()) { test = test() if (typeof test === 'string') { alert(test) return '終止' } }}yunxing1()同層多個(gè)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é)的有意思的邏輯,也是可以簡(jiǎn)化代碼的方法。這樣的邏輯還有很多………………
PS:這里再為大家推薦一款JS數(shù)組遍歷方式分析對(duì)比工具供大家參考:
在線JS常見遍歷方式性能分析比較工具:http://tools.Vevb.com/aideddesign/js_bianli
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《javascript面向?qū)ο笕腴T教程》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選