我有一个字符串,我需要使用javascript解析成图(DAG)的数据结构。 包括在数据结构是是考虑到链接,如果存在一个到另一个节点的几个属性,我应该保存,如节点的ID,名称和标签。 因此,一个例子是
Node1 (id: 1, name: 'first') --('link name')--> Node2 (id:....)
等等。 一旦数据结构创建我不需要做任何更多的操作以外读它(我将使用它来渲染与D3可视化)。 节点的数量不会很多,因为几个人的共享。
我想象邻接表,但我不知道我怎么会编码在JavaScript。 举例来说,我知道一个JSON对象可以有一个“田”字:“值”的结构,但我可以做到这一点与对象:相邻对象列表]?
您可以在JSON使用列表(阵列)。 例如,我可以代表一个简单的向图的
{
"NodeA": {"name": "NodeA", "adjacentTo": ["NodeB", "NodeC"]},
"NodeB": {"name": "NodeB", "adjacentTo": ["NodeC", "NodeD"]},
"NodeC": {"name": "NodeC", "adjacentTo": ["NodeA"]},
"NodeD": {"name": "NodeD", "adjacentTo": []}
}
这将是图表:
C
^^
| \
| \
A -> B -> D
名称字段真的是没必要的,但你可以用一个节点这样你想要的任何属性相关联。
JavaScript对象必须有串钥匙,但可以存储任何类型的值。 当然,在一个id整点是让你代表一个复杂类型wirh简单。
var adjacentTo = {};
adjacentTo[node1.id] = [node2, node3]