2011-12-06 61 views
1

我有這樣的事情這工作,但我想用result2數組的第一個系列.data而不是硬編碼。使用data: result2data: [result2]不起作用。這種聲明中的變量是不可能分配的?分配變量或數組對象元素在JavaScript

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

什麼是結果? –

+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)); 

然後,使用data: d在您的來電Chart

+0

我看到Highcharts中使用parseFloat的另一個例子,它解決了我的問題 - 謝謝你們兩位, – user1084007

相關問題