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;
    },
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章