[
{
"ent": "node",
"Id": "e026ee44b8ebae9eead1c496591a41a7",
"type": true,
"children": [
{
"ent": "node",
"Id": "e026ee44b8ebae9eead1c496591a41a7",
"type": false,
"children": [
{
"aaa": "1",
"bbb": "2",
"ent": "node1",
"Id": "e026ee44b8ebae9eead1c1123",
"children": [
{
"ent": "922220",
"children": []
}
]
},
{
"aaa": "3",
"bbb": "4",
"ent": "node2",
"Id": "4312e026ee44b8ebae9eead1c1123",
"type": false,
"children": [
{
"ent": "9666",
"children": []
}
]
},
{
"aaa": "3",
"bbb": "4",
"ent": "node2",
"Id": "4312e026ee44b8ebae9eead1c1123",
"children": [
{
"aaa": "3",
"bbb": "4",
"ent": "node2",
"Id": "4312e026ee44b8ebae9eead1c1123",
"children": [
{
"aaa": "8",
"bbb": "9",
"ent": "3",
"Id": "4312e026ee44b8ebae9eead1c11212321111111111113",
"type": true,
"children": [
{
"ent": "90",
"children": []
}
]
}
]
}
]
}
]
}
]
}
]
数组不确定有多少级,需要遍历每个children,查找到在最深层type为true的一级,返回这个json对象的算法!
const data = 你的数据
const getTreeName = (list, ids) => {
for (let i = 0; i < list.length; i++) {
// 找到满足条件的 返回整个 list[i]
if (list[i].type === ids) return list[i];
// 循环遍历判断 有没有下一级 children
if (list[i]?.children && list[i]?.children.length > 0) {
// 如果有,则传入 children 和指定ids 然后递归调用 getTreeName()
const res = getTreeName(list[i]?.children, ids);
if (res) return res;
}
}
};
console.log(getTreeName(data,true))
写个递归不就解决了么
function forArr(list) {
list.forEach(item => {
if(item.children && item.children.length) {
forArr(item.children)
}
})
}