[英]Implement Parent-Child relationship logic based on the logic given below
必须实施以下逻辑,我无法继续执行,
逻辑:
A has a child B
B has a child C
C has a child D
D doesn’t have any child
E doesn’t have any child
在选择任何父母时,应在列表中添加该特定选定父母的潜在孩子列表。
对于上述场景,所需的输出如下所示,
在选择父 A 时,子列表包含 B、C、D 和 E。
在选择父 B 时,子列表包含 C、D 和 E。A 不能是 B 的子,因为 B 已经是 A 的子,因此不会列出 A。
在选择父 C 时,子列表包含 D 和 E。B 不能是 C 的子,因为 C 已经是 B 的子,A 不能是 C 的子,因为 B 是流 A 的子。因此 A 和B 不会被列出。
在选择父 D 时,子列表 E. C 不能是 D 的子,因为 D 已经是 C 的子,B 不能是 D 的子,因为 B 是 C 的子,A 不能是 D 的子因为 A 有一个孩子 B。因此 A、B 和 C 不会被列出。
在选择 E 时,子项列表包含 A、B、C 和 D。
请帮我实现这个逻辑。
假设每个节点最多有一个父节点,以下逻辑应该完成这项工作:
var allNodes = [A, B, C, D, E]
function onNodeSelect(node) {
var possibleChildren = allNodes
possibleChildren.remove(node)
var currentNode = node
while (currentNode.hasParent) {
currentNode = node.parent
possibleChildren.remove(currentNode)
}
return possibleChildren
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.