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