如何使用 API(或另一个图表的元素)的输出创建新图表?

How can I create a new graph using output of an API (or the elements of another graph)?

我有一个图表,我使用 Kruskal API 创建了一个 MST。我想可视化 MST,但我没有看到任何立即明显的方法。

let originalGraph = cytoscape({
  ...
  elements: jsonData
});

let mst = originalGraph.elements().kruskal(e => e.data().weight);

let newGraph = cytoscape({
  ...
  elements: ???
});

我如何从 MST(或任何其他图表,如 originalGraph)中提取元素,以便我可以将其传递到新的 cytoscape 实例中以进行可视化?目前我的解决方法是:

let newGraph = cytoscape({
  ...
  elements: mst.map(e => { return { position: e.position(), data: e.data() } })
});

但我忍不住觉得我错过了一个更简单的方法。在一个可能相关的注释中,我看到文档说 .data() 将仅引用集合的第一个元素,但是有没有办法以与传入数据相同的方式获取对数据的引用(比如jsonData 以上)而不求助于 .map(...)?

如果答案显而易见,我深表歉意;我才刚刚开始使用 Cytoscape.js.

我再次更详细地浏览了文档,我明白了。 jsonData 的格式在文档中字面上称为 "plain JSON representation" 并且可以通过 .jsons() 函数获取,并传递给新图形。