-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
// aftercallback: 先执行层级深的
// beforecallback: 先执行层级浅的
const walkSelf = (o, afterCallback = noFunc, beforeCallback = noFunc) => {
const go = (o, parent, zIndex) => {
// 当前深度
zIndex = zIndex || 0
// 儿子们计算完的结果集
let childrenResult = []
beforeCallback(o, parent, zIndex)
if (o.children.length){
childrenResult = o.children.map(i => go(i, o, zIndex + 1))
}
return afterCallback(o, parent, childrenResult, zIndex)
}
return go(o)
}递归遍历,可以指定afterCallback、beforeCallback,callback中携带深度值和子结果集。
Metadata
Metadata
Assignees
Labels
No labels