JS遍歷list得到菜單樹結構,遞歸

記錄一下JS代碼,元數據json_data中沒有children屬性,動態增加該屬性

/**
     * 獲取xmSelect下拉菜單樹 數據
     * @param json_data
     */
    getMenuTreeData: function (json_data) {
        var _this = this;
        var menuJsonData = [];// 菜單數組
        var parentList = [];// 所有一級菜單數組
        for (var i = 0; i < json_data.length; i++) {
            var obj = {};
            obj["children"] = [];//給每個菜單對象增加一個children屬性
            obj["id"] = json_data[i].id;
            obj["parent"] = json_data[i].parent;
            obj["text"] = json_data[i].text;
            menuJsonData.push(obj);
            if (json_data[i].parent == '#') {
                parentList.push(obj);
            }
        }
        for (var i = 0; i < parentList.length; i++) {
            parentList[i] = _this.recuTree(parentList[i], menuJsonData);
        }
        // console.log(parentList);
        _this.menuTreeData = parentList;
    },
    recuTree: function (parentMenu, menuJsonData) {
        var _this = this;
        for (var i = 0; i < menuJsonData.length; i++) {
            if (parentMenu.id == menuJsonData[i].parent) {
                menuJsonData[i] = _this.recuTree(menuJsonData[i], menuJsonData);
                parentMenu["children"].push(menuJsonData[i]);
            }
        }
        return parentMenu;
    },
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章