js树结构查找id和name相同的指定数据
时间: 2024-10-13 12:14:56 浏览: 29
js实现无限层级树形数据结构(创新算法)
5星 · 资源好评率100%
在JavaScript中,如果你有一个树形数据结构(通常是一个数组嵌套的对象,每个对象代表节点,包含id和name属性),你可以通过递归的方式来查找具有特定id和name的节点。这里提供一个简单的示例函数:
```javascript
function findNodeByIdAndName(treeData, id, name) {
for (let node of treeData) {
if (node.id === id && node.name === name) {
return node;
}
// 如果当前节点有children,也递归搜索它的子节点
if ('children' in node) {
const found = findNodeByIdAndName(node.children, id, name);
if (found) {
return found;
}
}
}
// 如果未找到,则返回null
return null;
}
// 使用示例
const tree = [
{ id: 1, name: 'A', children: [{ id: 2, name: 'B' }, { id: 3, name: 'D' }] },
{ id: 4, name: 'C', children: [{ id: 5, name: 'E', children: [{ id: 6, name: 'F' }] }] },
];
const result = findNodeByIdAndName(tree, 3, 'D');
console.log(result); // { id: 3, name: 'D' }
```
在这个`findNodeByIdAndName`函数里,我们首先遍历顶层节点,如果找到匹配的就直接返回;如果没有,我们会检查这个节点是否有子节点,如果有则继续在子节点中寻找。
阅读全文