亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS實(shí)現(xiàn)水平遍歷和嵌套遞歸操作示例

 更新時(shí)間:2019年08月15日 09:16:47   作者:zhensg  
這篇文章主要介紹了JS實(shí)現(xiàn)水平遍歷和嵌套遞歸操作,結(jié)合實(shí)例形式分析了javascript遍歷與遞歸相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JS實(shí)現(xiàn)水平遍歷和嵌套遞歸操作。分享給大家供大家參考,具體如下:

程序中存在著一些有意思的邏輯,比如多層嵌套可以用遞歸遍歷,比如同層的if else可以用數(shù)組遍歷。

下面舉例說(shuō)明,多層嵌套的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.jb51.net/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ì)有所幫助。

相關(guān)文章

最新評(píng)論