繁体   English   中英

根据下面给出的逻辑实现父子关系逻辑

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM