欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年08月15日 09:16:47   作者:zhensg  
這篇文章主要介紹了JS實現(xiàn)水平遍歷和嵌套遞歸操作,結(jié)合實例形式分析了javascript遍歷與遞歸相關(guā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)文章

最新評論