2012-10-08 59 views
-1

可能重复:
how to add items to an array dynamically in javascript如何实现Highcharts动态

从数据库中获取数据后,我想将它传递给系列:highchart的。以下是数据。

series: [ 

    // { name: '53411', data:[8151.74,15105.39]}, 
    // { name: '53473', data:[18703.18,6692.23]}, 
    // { name: '500606', data:[-866.78,1311.01]}, 
    // { name: '500613', data:[27621.01,68468.79]}, 
    // { name: '500614', data:[73.3,80.47]} 

] 

但我想这是动态创建,并为我做了什么也低于:

var seriesData = ''; 
for (var i = 0; i < data.length; i++) { 
    if (i == data.length - 1) { 
     seriesData += "{ name:'" + seriesProviderName[i] + "', data:[" + providerist[i] + "," + providersec[i] + "]}"; 
    } 
    else { 
     seriesData += "{ name:'" + seriesProviderName[i] + "', data:[" + providerist[i] + "," + providersec[i] + "]},"; 
    } 

而在这之后,我路过这个seriesData到Series: [seriesData]但它不会打印图表。因为它是一个字符串,它在开始和结束时都包含双引号,并且我已经在firebug中看到了它,并且我不知道如何摆脱它。例如,“seriedData”在萤火虫中。

"{ name: '53411', data: [8151.74,15105.39]}, 
    { name: '53473', data: [18703.18,6692.23]}, 
    { name: '500606', data: [-866.78,1311.01]}, 
    { name: '500613', data: [27621.01,68468.79]}, 
    { name: '500614', data: [73.3,80.47]} 
    " 

我想删除这些双引号。

+3

您需要创建它作为一个数组,而不是字符串对象。 – TheZ

+0

@Amir,你的问题得到了答案吗?如果是这样,请提供信用! – Colleen

回答

0

您可以使用eval()JSON.parse()jQuery.parseJSON()(这可能是安全性和兼容性是最好的选择,如果你正在使用jQuery)把你的字符串对象成,然后可以传递给highcharts JSON对象。或者,如注释中那样,您可以通过做例如首先将数组创建为数组, series[0]['name']=53411;

编辑:stringify()走向另一个方向......脑屁。