2017-06-30 2 views
0

私は単一の列テーブルを作成しています。私の質問があるd3 - テーブル、表示文字列の各文字は別の "td"になります

var report = [ Jan 2016, report1, March2016, report2, June 2017, report3 ]; 

var rtable = d3.select('body') 
.append('table'); 

var trows = rtable.selectAll('tr') 
.data(report) 
.enter() 
.append('tr'); 

var tcell = trows.selectAll('td') 
.data(function(row) { 
return row;  // ToDo - more data manipulation 
}) 
.enter() 
.append('td') 
.html(function(d) { 
return d; 
}); 

this is how the output looks

:としてコードは、代わりに別の「TD」の各文字を有するので、私は一つの「TD」にあるように、文字列全体が好き。

これは何とかこのようなものがlinkと同じです。

は私が取得

.html(function(d) { 
return d.join(", "); 
}); 

としてd.join使用する場合:私は行方不明です何

「キャッチされない例外TypeError d.joinはない機能である」、任意のヘルプははるかに高く評価されます。

答えて

0

データ結合をネストして、必要な効果を得る必要はありません。代わりに、最初のデータ結合のtrtdを追加するだけで済みます。

var report = [ "Jan 2016", "report1", "March2016", "report2", "June 2017", "report3" ]; 

var rtable = d3.select('body') 
    .append('table'); 

var trows = rtable.selectAll('tr') 
    .data(report) 
    .enter() 
    .append('tr') 
    .append('td') // new code here 
    .html((d) => d); 

あなたは.html()function(d) {return d}または(d) => dを行うと、各文字とは反対に、これは今、文字列全体を返します。

なぜ.join()が機能しないのですか?文字列にはそのメソッドがありません。リンクした例では、ネストされた配列を使用しています。そのデータ結合中、各データポイントは配列で、.join()メソッドを持ちます。

+0

これは完璧に動作します! – laks

+0

@ laks:そう聞いてうれしい!この質問を見る他の人にはこれを受け入れられた回答としてください。 – qwertyuip9

関連する問題