js 遍历多层组织树
老规矩直接上代码
//递归器,遍历处理树形结构 //参数:列表(多个树形结构哦),子节点属性名,每个节点需要调用的方法,是否只在叶子节点执行该方法 export function ergodicNodes(list, childName, func, isOnlyLeaf) { list.forEach((item) => { if (item[childName] && item[childName].length > 0) { ergodicNodes(item[childName], childName,func,isOnlyLeaf); if (!isOnlyLeaf) { for (let key in item) { func(item) } return } } else { for (let key in item) { func(item) } return } }) return list; }
调用实现
this.options = ergodicNodes( this.options, "children", (item) => { item.disabled = false }, false)