我已经看到有关在 d3.js 中处理“嵌套 json”的问题,并且看到建议的解决方案主要是“扁平化”数据(意味着创建一个新变量并将数据推入所需级别)这里有两个示例:
我的问题是:可以使用各种数组函数之一来访问数据级别而不创建新变量吗?处理数组
我有一个看起来像这样的数组:
var dataset =
{"directed": false,
"graph": [],
"nodes":
[
{"Region": "X15", "Group": "EU", "id": "BE"},
{"id": "FR"},
{"id": "BG"},
{"id": "DK"},
{"id": "HR"},
{"id": "DE"}
],
"links":
[
{"source": 0, "target": 0, "weight": 0},
{"source": 0, "target": 1, "weight": 130},
{"source": 0, "target": 2, "weight": 1},
{"source": 0, "target": 3, "weight": 36},
{"source": 0, "target": 4, "weight": 4},
{"source": 0, "target": 5, "weight": 117}
],
"multigraph": false}
我试过以下
并且我想访问权重(使用 d3.max 计算其最大值)
dataset.links // gives me link
dataset.links[0].weight // gives me the weight of first but can't get the index to work
使用数组函数时,我无法获得低于该值的元素
d3.entries(dataset)
d3.values(dataset.links)
我错过了什么?
我希望这个问题是有道理的。
PS:如果必须展平数组,在javascript中这样做有什么好处,或者如果我创建数组(例如在python中)并将其传递给javascript,它是否相同