一个tree结构多级嵌套的数组,根据id找到tree中对应的数据及其所有父节点,然后组成一个数组
时间: 2024-05-02 09:17:46 浏览: 72
可以使用递归来实现这个功能,具体步骤如下:
1. 定义一个函数,传入两个参数:数组和要查找的id。
2. 遍历数组,找到id对应的元素。
3. 如果找到了,将该元素添加到结果数组中。
4. 如果该元素有父节点,递归调用函数,并将父节点作为要查找的id传入。
5. 将返回的结果数组合并到当前结果数组中。
6. 返回结果数组。
代码如下:
```javascript
function findItemById(arr, id) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i].id === id) {
result.push(arr[i]);
if (arr[i].parentId) {
let parentArr = findItemById(arr, arr[i].parentId);
result = [...result, ...parentArr];
}
break;
}
if (arr[i].children && arr[i].children.length) {
let childArr = findItemById(arr[i].children, id);
if (childArr.length) {
result.push(arr[i]);
result = [...result, ...childArr];
break;
}
}
}
return result;
}
```
这个函数可以处理多级嵌套的tree结构数组,可以根据id查找到对应的元素及其所有父节点,并将结果组成一个数组返回。
阅读全文