5

コンマで区切られたフロートのコレクションを保持する文字列変数を作成する asp.net コード ビハインドを実行しています。C#でこのようなもの

string myCString = "4.5, 3.1, 6.5, 7.0, -1.3";

この変数は、JavaScript 変数に割り当てられる asp.net Web ページになります。

var myJString = '<%=myCString %>';

ここで、通常のシリーズの構文が次のようになるハイチャートに入ります。

series: [{
     name: 'Series1',
     data: [1.1, 3.8, 5.3, 9.8, 5.0]
       }]

私がやりたいことは、シリーズのデータ​​ フィールドに myJString を割り当てることです。私は2つのアプローチを試みましたが、どちらもうまくいきませんでした。解決策はおそらく些細なことですが、私は熱心なプログラマーではありません。問題の核心は、Highcharts が文字列ではなく数値の配列を期待していることにあるようです。しかし、JavaScript の角かっこについての私の理解では、角かっこはその中のものを文字列に変換するということでしたか?

うまくいかなかったのは次のとおりです。

series: [{
     name: 'Series1',
     data: myJString    // does not work
       }]

series: [{
     name: 'Series1',
     data: myJString - 0    // does not work either
       }]

2 番目の試行はハイチャートからのものでした - 変数データはブラウザのロックアップを引き起こします。振り返ってみると、単なる数値ではない文字列から 0 を減算すると目標に達しないため、機能しなかったことは理にかなっています。

また、文字列ではなく数値の配列が必要なように見えるため、最初の試行が機能しなかったことも理にかなっています。今私の実際の質問に:

データ フィールドで使用できるように、JavaScript でカンマ区切りの浮動小数点数の文字列を安価に変換できますか。コード ビハインドでこれを行い、配列を JavaScript に渡してから、配列を使用してすべてを試す方が (パフォーマンス的に) 良いでしょうか? これは、myJString が float の配列ではないことが実際の問題であると想定しています。

あなたが提供できるかもしれない洞察を前もって感謝します。

4

3 に答える 3

15

これを試して:

data: JSON.parse("[" + myJString + "]")

基本的に、これは文字列の内容を JSON 配列としてフォーマットします。次に、parse関数は文字列を JavaScript 配列に逆シリアル化します。

于 2011-04-22T01:53:01.707 に答える
6

データは配列型なので、次のような値に配列を使用できます

myData = [4.5, 3.1, 6.5, 7.0, -1.3];
于 2012-06-29T08:13:28.107 に答える
1

したがって、もう 1 つの簡単な方法は、JavaScript の String.split() 関数を使用することです。

シリーズ: [{ 名前: 'Series1', データ: myJString.split(', ') }]

コンマの後にスペースがあるかどうかわからない場合は、正規表現を使用してください。

シリーズ: [{ 名前: 'Series1', データ: myJString.split(/,[\d]*/) }]

于 2012-05-03T20:35:41.857 に答える