最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js用閉包遍歷樹狀數(shù)組的方法

 更新時間:2014年03月19日 09:39:19   作者:  
這篇文章主要介紹了js中用閉包遍歷樹狀數(shù)組的方法,需要的朋友可以參考下

做公司項(xiàng)目時,要求寫一個方法,方法的參數(shù)為一個菜單數(shù)組集合和一個菜單id,菜單數(shù)組的格式為樹狀json,如下面所示:

復(fù)制代碼 代碼如下:
[{"id":28,"text":"公司信息","children":[

     {"id":1,"text":"公司文化"},

     {"id":2,"text":"招聘計(jì)劃"},

     {"id":6,"text":"公司新聞","children":[

          {"id":47,"text":"行業(yè)新聞"}]},

          {"id":11,"text":"內(nèi)部新聞","children":[

                         {"id":24,"text":"行政信息"},

                         {"id":27,"text":"高層指示"}]},

          {"id":22,"text":"聯(lián)系我們"},

          {"id":26,"text":"產(chǎn)品展示","children":[

                         {"id":32,"text":"電力產(chǎn)品"},

                         {"id":33,"text":"配件介紹"}}]

 }] }]

現(xiàn)在給出的菜單id為32,要求找到對應(yīng)的項(xiàng),并返回對應(yīng)的菜單名稱,方法是先循環(huán)遍歷數(shù)組,當(dāng)項(xiàng)的id等于指定的id時,將菜單名稱取出,如果不等于則看當(dāng)前項(xiàng)是否有children,如果children不為空且數(shù)量大于0,則遍歷children,這時就要用到j(luò)avascript的閉包,將遍歷children的方法放在一個匿名方法中,這樣一直在匿名方法中遞歸自身,當(dāng)遇到相同名稱的id,就跳出循環(huán),然后從主方法中返回得到的菜單名稱,代碼如下:

復(fù)制代碼 代碼如下:
function getMenuName(menus, id) {
  var name = "" ;
  for (var i = 0; i < menus.length; i++) {
    if (menus[i].id == id) {
      name = menus[i].text;
      break;
    }
    else {
       (function () {
        var m = arguments[0];
        var menuid = arguments[1];
        for (var j = 0; j < m.length; j++) {
          if (m[j].id == menuid) {
            name = m[j].text;
            break;
          }
          else if m[j].children != null && m[j].children.length > 0) {
            arguments.callee(m[j].children, val);//遞歸匿名方法
          }
        }
      })(menus[i].children, id);
    }
  }
  return name;
}

相關(guān)文章

  • JavaScript?雙位非運(yùn)算(~~?操作符)使用場景實(shí)例探索

    JavaScript?雙位非運(yùn)算(~~?操作符)使用場景實(shí)例探索

    本文為大家介紹JavaScript中雙位非運(yùn)算?~~,?~~?操作符是一個強(qiáng)大且經(jīng)常被忽視的特性,它提供了一種快速、簡潔的方式來處理數(shù)字和執(zhí)行類型轉(zhuǎn)換,通??梢员挥糜跀?shù)學(xué)計(jì)算和類型轉(zhuǎn)換,我們先了解一下?~~?的基本概念和它的一些應(yīng)用場景
    2024-01-01
  • Three.Js實(shí)現(xiàn)顏色自定義變換效果實(shí)例

    Three.Js實(shí)現(xiàn)顏色自定義變換效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于Three.Js實(shí)現(xiàn)顏色自定義變換效果的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 1秒50萬字!js實(shí)現(xiàn)關(guān)鍵詞匹配

    1秒50萬字!js實(shí)現(xiàn)關(guān)鍵詞匹配

    1秒50萬字!js實(shí)現(xiàn)關(guān)鍵詞匹配,快速進(jìn)行關(guān)鍵字匹配,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 簡單了解微信小程序 e.target與e.currentTarget的不同

    簡單了解微信小程序 e.target與e.currentTarget的不同

    這篇文章主要介紹了微信小程序 e.target與e.currentTarget的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 微信小程序控制view隱藏顯示的5種方法匯總

    微信小程序控制view隱藏顯示的5種方法匯總

    在微信小程序開發(fā)時,經(jīng)常要用到一個控件會根據(jù)不同的情況和環(huán)境動態(tài)顯示與隱藏這種情況,下面這篇文章主要給大家介紹了關(guān)于微信小程序控制view隱藏顯示的5種方法,需要的朋友可以參考下
    2022-04-04
  • 用Javascript判斷圖片是否存在,不存在則顯示默認(rèn)圖片的代碼

    用Javascript判斷圖片是否存在,不存在則顯示默認(rèn)圖片的代碼

    用Javascript判斷圖片是否存在,不存在則顯示默認(rèn)圖片的代碼,需要的朋友可以參考下。
    2007-03-03
  • 一文總結(jié)JavaScript中Promise遇到的問題

    一文總結(jié)JavaScript中Promise遇到的問題

    Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。本文將總結(jié)一下在Promise中容易遇到的一些問題,感興趣的同學(xué)可以參考下
    2023-05-05
  • JavaScript實(shí)現(xiàn)首頁圖片輪播圖效果

    JavaScript實(shí)現(xiàn)首頁圖片輪播圖效果

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)首頁圖片輪播圖效果,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • 掃微信小程序碼實(shí)現(xiàn)網(wǎng)站登陸實(shí)現(xiàn)解析

    掃微信小程序碼實(shí)現(xiàn)網(wǎng)站登陸實(shí)現(xiàn)解析

    這篇文章主要介紹了掃微信小程序碼實(shí)現(xiàn)網(wǎng)站登陸實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 詳解ES6數(shù)組方法find()、findIndex()的總結(jié)

    詳解ES6數(shù)組方法find()、findIndex()的總結(jié)

    這篇文章主要介紹了詳解ES6數(shù)組方法find()、findIndex()的總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評論

SHOW| 沐川县| 长岭县| 澎湖县| 英山县| 青浦区| 泸溪县| 许昌县| 鹤壁市| 吴川市| 恩施市| 建阳市| 龙口市| 绥化市| 葫芦岛市| 广昌县| 海林市| 化德县| 忻州市| 台湾省| 溆浦县| 黄浦区| 常州市| 宝鸡市| 正阳县| 黎城县| 钟山县| 应城市| 张家口市| 蒙山县| 北安市| 龙陵县| 莱州市| 山阴县| 景德镇市| 和田市| 新乡市| 古浪县| 罗江县| 怀仁县| 象山县|