【发布时间】:2020-08-18 02:59:31
【问题描述】:
我正在尝试在 javascript 中创建一个递归方法,但我创建了一个无限循环。
我的想法是创建一个递归方法来检查具有较少子节点的最大值。
这是我的代码,但正如我所说,我不知道为什么要创建一个无限循环。
export const checkMaximumChildren = (hierarchy, maximum) => {
let hasMoreThanMaximumChildren = false;
if (hierarchy.children.length > maximum) {
hasMoreThanMaximumChildren = true;
} else {
const dmaExtractor = (children) => {
children.forEach((child) => {
if (child.children.length > maximum) {
hasMoreThanMaximumChildren = true;
return hasMoreThanMaximumChildren;
}
if (
child &&
child.children &&
Array.isArray(child.children) &&
child.children.length > 0
) {
dmaExtractor(data.children);
}
});
};
if (
hierarchy &&
hierarchy.children &&
Array.isArray(hierarchy.children) &&
data.children.length > 0
) {
dmaExtractor(hierarchy.children);
}
}
return hasMoreThanMaximumChildren;
};
const data = [{
"id": 1,
"parentId": null,
"selected": false,
"children": [{
"id": 2,
"parentId": 1,
"selected": false,
"children": [{
"id": 3,
"parentId": 2,
"selected": false,
"children": [{
"id": 4,
"parentId": 3,
"selected": false,
"children": []
}]
}]
}]
}, {
"id": 1,
"parentId": null,
"selected": true,
"children": []
}, {
"id": 1,
"parentId": null,
"selected": true,
"children": []
}]
编辑
对不起,我很笨......
dmaExtractor(数据.children);由 dmaExtractor(child.children);
【问题讨论】:
-
(offtopic) branchs 是什么意思?我们应该如何测试您的代码?
-
分支是一个层次结构
标签: javascript recursion