数码资讯
用闭包遍历树数组的JS方法
制作公司项目时,需要编写一个方法。该方法的参数是一个菜单数组集和一个菜单ID。菜单数组的格式是树JSON,如下所示。 将代码复制如下:{ 28 {id:1,文本:企业文化}, {id:2,文本:招聘计划}, {id:6,文本:公司新闻 {id:47,文本:} }行业新闻 {id:11,文本:内部消息
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
制作公司项目时,需要编写一个方法。该方法的参数是一个菜单数组集和一个菜单ID。菜单数组的格式是树JSON,如下所示。
将代码复制如下:{ 28
{id:1,文本:企业文化},
{id:2,文本:招聘计划},
{id:6,文本:公司新闻
{id:47,文本:} }行业新闻
{id:11,文本:内部消息
{id:24,文本:管理信息},
{id:27,文本: } }指令
{id:22,文本:联系我们},
{id:26,文本:产品显示
{id:32,文本:电源产品},
{id:33,文本:} }附件
} }
现在,我的菜单是32,找到相应的要求,并返回相应的菜单名,方法是遍历数组,当ID等于指定的ID,将删除菜单的名称,如果不是看到当前项是否是孩子,如果孩子不是零和数大于0,然后遍历,我们应该使用Javascript闭包的方法将遍历一个匿名方法,它已经在递归的匿名方法本身,当面对相同名字的ID,被淘汰出局,然后返回到菜单名称的主要方法,其代码如下:
复制代码代码如下:功能getmenuname(菜单,ID){
var;
对于(var i = 0;i < menus.length;i++){
如果(菜单{ id = id = id){
名称=菜单{文本};
打破;
}
{其他
(函数(){())
var =参数{ 0 };
无功menuid =论点{ 1 };
对于(var j = 0;J < m.length;j++){
如果(M { J }。ID = = menuid){
名称= m。}。文本;
打破;
}
否则,如果孩子!= null M { J children.length > 0){ }。
arguments.callee(M { J }。孩子,瓦迩); / /递归匿名方法
}
}
}(菜单{ },儿童,ID);
}
}
返回的名称;
}
将代码复制如下:{ 28
{id:1,文本:企业文化},
{id:2,文本:招聘计划},
{id:6,文本:公司新闻
{id:47,文本:} }行业新闻
{id:11,文本:内部消息
{id:24,文本:管理信息},
{id:27,文本: } }指令
{id:22,文本:联系我们},
{id:26,文本:产品显示
{id:32,文本:电源产品},
{id:33,文本:} }附件
} }
现在,我的菜单是32,找到相应的要求,并返回相应的菜单名,方法是遍历数组,当ID等于指定的ID,将删除菜单的名称,如果不是看到当前项是否是孩子,如果孩子不是零和数大于0,然后遍历,我们应该使用Javascript闭包的方法将遍历一个匿名方法,它已经在递归的匿名方法本身,当面对相同名字的ID,被淘汰出局,然后返回到菜单名称的主要方法,其代码如下:
复制代码代码如下:功能getmenuname(菜单,ID){
var;
对于(var i = 0;i < menus.length;i++){
如果(菜单{ id = id = id){
名称=菜单{文本};
打破;
}
{其他
(函数(){())
var =参数{ 0 };
无功menuid =论点{ 1 };
对于(var j = 0;J < m.length;j++){
如果(M { J }。ID = = menuid){
名称= m。}。文本;
打破;
}
否则,如果孩子!= null M { J children.length > 0){ }。
arguments.callee(M { J }。孩子,瓦迩); / /递归匿名方法
}
}
}(菜单{ },儿童,ID);
}
}
返回的名称;
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。