求大佬看看,这段代码应该可以写成递归吧,新人完全不知道咋写啊

白日做梦002 2021-03-30 11:21:29
this.dataList.forEach(item => {
if (item.children == null) {
this.checkedKeys.push(item.budgetItemId)
} else {
item.children.forEach(ite => {
if (ite.children == null) {
this.checkedKeys.push(ite.budgetItemId)
} else {
ite.children.forEach(it => {
if (it.children == null) {
this.checkedKeys.push(it.budgetItemId)
} else {
it.children.forEach(it2 => {
this.checkedKeys.push(it2.budgetItemId)
})
}
})
}
})
}
})

求大佬看看,这段代码应该怎样写成递归啊
...全文
163 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
简_洋 2021-03-31
  • 打赏
  • 举报
回复
recursion(data) { data.forEach((item) => { item.name = item.id + '-' + item.name; if (item.children_list) { this.recursion(item.children_list); } }); }, 这个是我写的一个递归。也是多重数组。你可以参考一下
泡泡鱼_ 2021-03-30
  • 打赏
  • 举报
回复
自己写过一个函数,入参有两个,一个是源数据(this.datalist/item.children),另一个是this.checkedKey。如果这个this.checkedKey是全局变量,那可以不定义为入参,只需要一个源数据参数即可

function fn(data){
   data.forEach(item=>{
     item.children? fn(item.children) : this.checkedKeys.push(item.budgetItemId);
   })
}
fn(this.datalist)
  • 打赏
  • 举报
回复
unforlAll(data){ data.forEach((el) => { el.children && el.children == null ? this.unforlAll(el.children) : this.checkedKeys.push(el.budgetItemId); // 子级递归 }); },

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧