Это код, он перебирает объект, ищущий глубоко вложенные дочерние элементы, и должен останавливаться, когда больше нет дочерних элементов, или он превышает ALLOWED_NESTING_DEPTH.
Кажется, что console.log
запускается только один раз, хотя я получаю правильный номер.
const ALLOWED_NESTING_DEPTH = 4
function traverseChildren (childrenIdList, parentsNesting = 0) {
parentsNesting++
if (parentsNesting > ALLOWED_NESTING_DEPTH || _.isEmpty(childrenIdList)) {
console.log(parentsNesting) // Why does this show only once even if there are many levels of nesting?
return parentsNesting
}
let children = childrenIdList.map(child => _.find(tree.items, { id: child }))
let allChildren = []
if (!_.isEmpty(children)) {
allChildren = _.flattenDeep(children.map(child => child.children))
}
return traverseChildren(allChildren, parentsNesting)
}
traverseChildren(someChild)