2011-12-06 8 views
1

私はこのようなものを持っていますが、ハードコーディングではなく、の最初のシリーズにresult2配列を使用します。 data: result2またはdata: [result2]を使用しても機能しません。この種の宣言で変数を割り当てることはできませんか?javacriptのオブジェクト要素に変数または配列を代入する

var chart1; 
$(document).ready(function() { 
    $.get('sales_data', function(result) { 
     var result2 = result.split(','); 
     chart1 = new Highcharts.Chart({ 
     series: [{ 
      type: 'column', 
      name: 'Units', 
      data: [1, 3, 4] 
     }, { 
      type: 'line', 
      name: '3 month avg', 
      data: [2, 3, 4] 
     }] 
     }); 
    }); 
}); 
+0

'result'は何ですか? –

+0

ここでは何が効果がありませんか? 'split'はオブジェクトではなく配列を返します、ちょうどFYI。 –

+0

これは単に 'data:result2'を動作させるべきです。あなたはそれを試しましたか?動作していない場合は、 'sales_data'が正しい文字列を返すかどうかを確認してください。 – minboost

答えて

1

あなたはJavaScriptでのような何かをすることが可能であることが正しいです:

var arr = str.split(','); 
var obj = {data: arr}; 

しかし、私は、問題は、あなたのチャートAPIに文字列の配列を渡していることかもしれないと思います。

ハードコーディングされた例では、整数の配列を渡しています。しかし、splitを呼び出すと、一連の文字列が得られます。これは問題の原因となる可能性があります。あなたはグラフAPIに渡す前に

だから、のparseIntまたはparseFloatはを使用して数値の配列にあなたの文字列配列を変換してみてください。

3

問題は、文字列を分割している場合、result2は文字列の配列になるという事実であるかもしれません。

私はHighchartsを使用していないが、整数の対応する配列に文字列の各要素を解析しようとし、その配列を渡す決してしました。

var strings = result.split(','); 
var d = []; 
for (var i = 0; i < strings.length; i++) 
    d.push(parseInt(strings[i], 10)); 

その後、Chartにお電話でdata: dを使用しています。

+0

HighchartsのparseFloatを使用した別の例を見て、それが私の問題を解決しました - ありがとう、 – user1084007