必须实现以下逻辑,我无法继续进行
逻辑:
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,儿童列表时。C不能是D的孩子,因为D已经是C的孩子,B不能成为D的孩子,因为B是C的孩子,A不能是D的孩子,因为AChild 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
}