私はHighcharts(特定のデモへのリンク-[表示オプション]をクリックして以下のコードを比較)を使用して、個人使用のためにいくつかのデータをレンダリングしています。
[注:これはほぼ間違いなく私に関連するエラーなので、Highchartsに問題があるとほのめかすつもりはありません。これは本当に素晴らしいAPIです!]
チャートオブジェクトのseries.dataフィールドを設定すると、奇妙な配列セクショニングが発生します。
たとえば、これは正常に機能します。
series: [{
name: 'seriesName',
data: [22, 24, 15]
}]
そして、3つのデータポイントが値22、24、および15でプロットされます。
でも、
series: [{
name: 'sillySeries',
data: chartData[0]
}]
値2、4、および5で3つのポイントをレンダリングし、ポイントのタイトルはそれぞれ2、2、および1です...つまり、配列エントリをタイトルに分割し、次に2桁の数値の値に分割します。
console.logは、chartDataが次のようになっていることを示しています
22,24,15,2010-9,2010-10,2010-11
(3か月で3つの値)
実際の配列は[22,24,15][2010-9,2010-10,2010-11]に似ていますが
私の2D配列にchartData[][]
は[column][row]
データのインデックスがあり、要求するchartData[0]
と配列が返されると考えました。
おそらく私の質問は次のようになります:javascriptオブジェクトのプロパティ/値を設定するために2D配列表現から1D配列を返すにはどうすればよいですか?私はおそらく非常に明白な何かを見落としているようです。
編集:
data: [24]
24で1ポイントをプロットします。
data: '24'
データをタイトル、次に値として分割し、24ではなく4でポイントを効果的にプロットします。
したがって、配列をデータフィールドに渡そうとすると、表現は文字列になります。string.toArrayのようにできる方法はありますか?
編集2:
chartData[col][row]
空の配列として宣言されています
var chartData = [];
その後、HTMLテーブルの行と列を反復処理して値を入力します。ここで、最も内側のループの内容は次のようになります。
chartData[cellIndex][rowIndex] = $(currentCell).text();