1

d3.js での「ネストされた json」の処理に関する質問を見たことがありますが、提案された解決策はほとんどがデータを「フラット化」することであることがわかりました (つまり、新しい変数を作成し、必要なレベルでデータをプッシュすることを意味します)。ここで 2 つの例を示します。

私の質問は次のとおりです。さまざまな配列関数のいずれかを使用して、新しい変数を作成せずにデータのレベルにアクセスできますか? 配列の処理

次のような配列があります。

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に渡す場合と同じですか

4

1 に答える 1