有一个JS数组 数组有很多对象 每个对象有 children 属性, 每个children 是数组,也包含了很多对下个,同样结构,请写一个函数,进行递归,直到找到最后一个节点
时间: 2024-12-02 13:15:29 浏览: 14
当然可以,你想要编写一个递归函数来遍历这样的嵌套数组,直到找到最后一个对象,假设每个对象都有一个名为`children`的属性,它是另一个数组。这是一个简单的JavaScript函数实现的例子:
```javascript
function findLastNode(arr) {
// 定义一个空对象来保存当前路径的最后一个节点
let lastNode;
function recursiveSearch(node) {
// 遍历当前节点的children
for (let child of node.children) {
// 递归查找下一个节点
const nextNode = recursiveSearch(child);
// 如果找到了非空的nextNode,说明这是最后的节点
if (nextNode) {
lastNode = nextNode;
} else {
// 如果当前节点的孩子都没有更多的children,那么它就是最后的节点
if (!child.children.length) {
lastNode = node;
}
}
}
return lastNode;
}
// 开始从数组的第一个元素开始递归查找
return recursiveSearch(arr[0]);
}
// 使用你的数组调用此函数
const nestedArray = ...; // 替换为你实际的嵌套数组
const lastNode = findLastNode(nestedArray);
console.log(lastNode);
```
这个函数会从给定的数组的第一个元素开始递归,直到遇到没有子节点的对象,即视为“最后一个节点”。
阅读全文