2011-12-06 35 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

相关问题