おそらく些細なことですが、私はガイダンスを見つけることができない入れ子になったデータの状況にあるようです。データが断続的にしか利用できない時間進行 (インデックス) を表す配列があります。
elem[..]
elem[55].path[..]
elem[56]
elem[57]
elem[58].path[..]
elem[59]
elem[60].path[..]
elem[..]
空のデータ ポイントは null です。
elem[count] = null;
..一方、さらなる使用が保留されている場合、パス要素は次を使用して初期化されます。
elem[count].path = [];
大規模なデータ セットが収集されます。次の 2 つのコード ブロックのうち最初のブロックでは、配列インデックスを選択します。
classes[chan_index].elem_num_container = "elem_num_container" + "_" + comp_id + "_" + chan_index;
chan_selector.elem_num_container[chan_index] = chan_selector.vis_container[chan_index]
.selectAll(classes[chan_index].elem_num_container)
.data(function(d, i) {
return d;
})
.enter()
.append("svg:g")
.attr("class", function(d, i) {
return classes[chan_index].elem_num_container;
});
非常に多くの null 要素があると、2 番目のブロック (以下) で、ネストされた d.path が "groupData is undefined" エラーを引き起こすのは当然です。
classes[chan_index].path_container = "path_container" + "_" + comp_id + "_" + chan_index;
chan_selector.path_container[chan_index] = chan_selector.elem_num_container[chan_index]
.selectAll(classes[chan_index].path_container)
.data(function(d, i) {
return d.path;
})
.enter()
.append("svg:g")
.attr("class", function(d, i) {
return classes[chan_index].path_container;
});
基本的には、「d」パラメーターに基づいてデータを選択し、その後に「d.value」でネストされた選択を行うことになります。インデックスを保持しながら、エラーを回避し、存在する d.path 要素を選択する必要があります。
ネストされた JSON データの例はたくさんありますが、このケースに該当するものはありません。
ブロックされ、助けてくれてありがとう.. Thx