js 找出一个数组树形中path完全一样飞
时间: 2024-10-25 08:05:10 浏览: 12
在JavaScript中,如果你有一个树形结构的数据,比如一个嵌套的数组表示的树,你需要找出所有路径(即从根节点到叶子节点的所有节点组成的数组)具有相同值的路径。这通常涉及到深度优先搜索(DFS)或广度优先搜索(BFS)。下面是一个基本的递归方法示例:
```javascript
function findSamePath(arr, path = [], target) {
for (let i = 0; i < arr.length; i++) {
const value = arr[i];
if (!Array.isArray(value)) { // 如果不是数组,说明找到了一个叶子节点
if (value === target) {
console.log(path.concat(value)); // 打印相同的路径
}
} else { // 否则是数组继续递归查找
findSamePath(value, [...path, i], target);
}
}
}
// 示例数据
const tree = [
[1, 2],
[3, [4, [5, 6]], [7]],
[8]
];
// 调用函数
findSamePath(tree, []);
```
这个函数会遍历整个树,对于每个节点,如果当前节点的值等于目标`target`,就将当前路径记录下来;同时对子节点继续进行递归搜索。
阅读全文