在cytoscape.js中的无向图中,我想确定是否添加边会完成设置的路径。可以以任何顺序添加边缘。路径是静态定义的。同一节点之间不允许有多个边缘。
例如,在下图中:
A-->B-->C-->D E-->F
添加边沿D-->E
将完成设置的路径A-->F
。
当前,以下方法似乎效果很好:
let col = cy.$(`[source = "1"][target = "10"],[source = "10"][target = "2"]`)
return col.length == 2 && col.filter(`#${edge.id()}`).length == 1
在此处通过将1
添加到图形中来确定2
和edge
之间的路径已经完成,并且edge
是所述路径的直接成员。 / p>
虽然可行,但我怀疑存在更有效的解决方案。
由于所有路径都是事先静态已知的,因此面向动态搜索的解决方案似乎有些过头,而路径本身可以增长到多达约50个段,从而产生上述选择器。
这里还有其他更简单明了的方法吗?