倒序递归查询节点
const initialCodeTree = {
"id": "1",
"componentName": "div",
"children": [
{
"id": "2",
"componentName": "div",
"children": [
{
"id": "3",
"componentName": "div",
"children": [],
}
],
}
],
};
倒序递归
const traverse = (data, fn) => {
if (fn(data) === false) {
return false
}
// 倒序递归
if (data && data.children) {
for (let i = data.children.length - 1; i >= 0; i--) {
if (!traverse(data.children[i], fn)) return false
}
}
return true
}
使用方法:
traverse(initialCodeTree, item => {
if (item.id === '2') {
console.log('item', item)
return false
}
return true
})