js 找出一个数组对象树形中path完全一样飞
时间: 2024-10-25 09:05:10 浏览: 12
在JavaScript中,如果你有一个对象数组构成的树形结构,并且你想找出所有路径完全相同的对象,你可以通过递归的方式来实现。这里是一个简单的例子:
```javascript
function findSamePaths(objects, path = [], result = []) {
for (let obj of objects) {
// 检查当前对象是否是我们想要的结果
if (!obj.path || JSON.stringify(obj.path) === JSON.stringify(path)) {
result.push(obj);
}
// 如果对象有children属性,继续遍历其子节点
if (obj.children && Array.isArray(obj.children)) {
findSamePaths(obj.children, [...path, obj], result);
}
}
return result;
}
// 示例数据
const tree = {
path: ['root', 'node1'],
children: [
{ path: ['root', 'node1', 'child1'] },
{ path: ['root', 'node1', 'child2'] },
{ path: ['root', 'node2'] } // 这个路径与['root', 'node1']不同
]
};
console.log(findSamePaths(tree)); // 输出所有路径完全相同的对象
```
这个函数会返回一个新数组,其中包含所有路径与给定`path`完全相同的对象。`path`默认为空数组,表示从根开始查找。
阅读全文