1

我有几个复合节点(A 包含 B,B 包含 C),我想选择叶节点 (C)。怎么做?

谢谢!

4

2 回答 2

0

您选择的意思不清楚,但我猜您的意思是如何查询图表:

cy.nodes().not(':parent'); // all nodes who are not themselves a parent
// or //
cy.nodes(':child').not(':parent'); // all descendant nodes who are not themselves a parent
于 2014-06-19T21:14:08.857 回答
0

为了选择所有叶子,可以使用 cytoscape 提供的 Leaves() 方法:https ://js.cytoscape.org/#nodes.leaves

您可以按如下方式使用它:

cy.nodes().leaves()

这将返回一个节点数组。因此,您可以遍历它们中的每一个,也可以简单地选择索引 = 0 的叶子(如果您确定树中只有一个叶子)。

const leaves = cy.nodes().leaves();
leaves.forEach((leaf) => {
  // add 1 to count the node it self.
  console.log('leaf -> ', leaf.data().id, 'deepLevel: ', leaf.predecessors('node').length + 1);
});
于 2021-08-23T21:26:47.793 回答