js递归算法,判断返回true或false

[ {
"id": "510489e1acab613446b69034eada2943",
"number": "1",
"name": "模块(一)",
"superclass": "0",
"superclass_name": "无",
"higrade": "",
"lograde": "",
"remark": "",
"standard": "科学性和创新性"
},
{
"id": "b273cb4050abf959a823ff07ef95deec",
"number": "1.1",
"name": "管理方法",
"superclass": "510489e1acab613446b69034eada2943",
"superclass_name": "模块(一)",
"higrade": "10",
"lograde": "",
"remark": "",
"standard": "所应用的管理方法(技术)符合普遍性认知的科学规律,符合质量品牌管理发展趋势。"
},
{
"id": "35362a8ba4fbe04a9e23496806910dea",
"number": "1.1.1",
"name": "大萨达",
"superclass": "b273cb4050abf959a823ff07ef95deec",
"superclass_name": "管理方法",
"higrade": "",
"lograde": "",
"remark": "",
"standard": ""
},
{
"id": "1cf9f7ec5fb807d5477765c8ddb5b310",
"number": "1.2",
"name": "创新性经验",
"superclass": "510489e1acab613446b69034eada2943",
"superclass_name": "模块(一)",
"higrade": "15",
"lograde": "",
"remark": "",
"standard": "在管理方法(技术)本身或(和)应用过程中有创新性经验(成果)。"
},
{
"id": "bc230f233763864c200c465d24feb9ed",
"number": "1.3",
"name": "核心内容",
"superclass": "510489e1acab613446b69034eada2943",
"superclass_name": "模块(一)",
"higrade": "10",
"lograde": "",
"remark": "",
"standard": "能成功应用该管理方法(技术)的核心内容,且逻辑清晰,内容完整。"
}]

    上面的数据格式,我新插入一条数据,新插入如果higrade 不为空,且superclass是1.1.1,如果1.1.1的higrade为空,继续找1.1.1的上一级,就是一直向上找直到找到superclass为0为止,这样的递归算法怎么写

我理解一下哈,你的意思是不是插入的时候使用了变量赋值的方法,比如说,查询出数据来,放在一个变量里面,然后把这个变量用一个insert语句插入表,如果是这样的,当有空值出现时,该变量会被赋值为空,不会保留上一次的结果。
个别编程语言会有这个缺陷,例如PB就有这个问题,所以。通常来说好的变成习惯应该是每次变量是用前都初始化,在使用结束后都销毁或者回收。
希望回答可以帮到你。

你可以一次次遍历去查,不过我感觉在前端这样比较麻烦,后端实现比较方便

最好不要把递归和多层循环之类的放在客户端,容易浏览器崩溃

<?xml version="1.0" encoding="UTF-8"?>


课 程 管 理
添加知识点
1
240
380
1
knowdotadd.jsp
0


课 程 管 理
课 程 查 询
0
280
340
1
courseselect.jsp
1


查 询
系 统 日 志
0
280
340
1
Systemnote.jsp
0


查 询
用 户 查 询
0
280
340
1
userselect.jsp
1


初始化
添加用户
1
200
380
1
useradd.jsp
0


初始化
添加课程
1
200
380
1
courseadd.jsp
1

<?xml version="1.0" encoding="UTF-8"?>


课 程 管 理
添加知识点
1
240
380
1
knowdotadd.jsp
0


课 程 管 理
课 程 查 询
0
280
340
1
courseselect.jsp
1


查 询
系 统 日 志
0
280
340
1
Systemnote.jsp
0


查 询
用 户 查 询
0
280
340
1
userselect.jsp
1


初始化
添加用户
1
200
380
1
useradd.jsp
0


初始化
添加课程
1
200
380
1
courseadd.jsp
1

package edf;

/*

  • 菜单节点类
    */
    public class menunode {
    private String parentmenu;// 伏击菜单名
    private String menutext;// 菜单名
    private String pop;// 是否是唐初窗口
    private String end;//是否结束
    private Integer width;//窗口宽度
    private Integer height;//窗口高度
    public String getPop() {
    return pop;
    }

    public void setPop(String pop) {
    this.pop = pop;
    }

    private String flags;// 是否可见 1可见
    private String url;// 跳转的URL

    public String getMenutext() {
    return menutext;
    }

    public void setMenutext(String menutext) {
    this.menutext = menutext;
    }

    public String isFlags() {
    return flags;
    }

    public void setFlags(String flags) {
    this.flags = flags;
    }

    public String getUrl() {
    return url;
    }

    public void setUrl(String url) {
    this.url = url;
    }

    public String getParentmenu() {
    return parentmenu;
    }

    public void setParentmenu(String parentmenu) {
    this.parentmenu = parentmenu;
    }

    public String getEnd() {
    return end;
    }

    public void setEnd(String end) {
    this.end = end;
    }

    public Integer getWidth() {
    return width;
    }

    public void setWidth(Integer width) {
    this.width = width;
    }

    public Integer getHeight() {
    return height;
    }

    public void setHeight(Integer height) {
    this.height = height;
    }
    }

先写个节点类,然后在生成