如何在Charts.js中将动态字符串作为数据集传递

时间:2019-11-26 03:09:37

标签: javascript charts chart.js

我正在尝试在图表的数据集字段中传递动态创建的值(新数据)。

var data = {
labels: bottomlabel,
datasets: newdata};

我如何获取数据正在使用for循环:

for(i = 0; i < actual_JSON.length-1; i++){
    dslabel = actual_JSON[i].Client;
    dsdata = actual_JSON[i].Customer +"," +actual_JSON[i].Internal;
    gcolor = dsbgcolor[i];
    borcolor = dsborcolo[i];
    if(i == actual_JSON.length-2)
    {
        prefinalds += "{label: "+dslabel+",data: ["+dsdata+"],backgroundColor: "+dsbgcolor[i]+",borderColor: "+dsborcolo[i]+",fill: "+fill+",lineTension: "+lt+",radius: "+rad+"}";
    }
    else
    {
        prefinalds += "{label: "+dslabel+",data: ["+dsdata+"],backgroundColor: "+dsbgcolor[i]+",borderColor: "+dsborcolo[i]+",fill: "+fill+",lineTension: "+lt+",radius: "+rad+"},";
    }
}

然后创建“数据”:

newdata= "["+prefinalds+"]";

现在,当我在“数据集:newdata”中传递数据时。我得到一个空白图表。请提出建议。

P.S。我尝试了JSON.parse(),但是没有用。

1 个答案:

答案 0 :(得分:0)

您尝试过这个吗?

var prefinallds = [];
for(i = 0; i < actual_JSON.length-1; i++){
  var data = {};
  dslabel = actual_JSON[i].Client;
  dsdata = actual_JSON[i].Customer +"," +actual_JSON[i].Internal;
  gcolor = dsbgcolor[i];
  borcolor = dsborcolo[i];
  if(i == actual_JSON.length-2)
  {
    data.label = dslabel;
    data.data = dsdata;
    data.backgroundColor = dsbgcolor[i];
    data.borderColor = dsborcolo*emphasized text*[i];
    data.radius = rad;
  }
  else
  {
    data.label = dslabel;
    data.data = dsdata;
    data.backgroundColor = dsbgcolor[i];
    data.borderColor = dsborcolo*emphasized text*[i];
    data.radius = rad;
  }
  prefinallds.push(data);
}
// convert to json
JSON.parse(prefinallds);

您尝试将字符串转换为JSON格式,不建议这样做。我强烈鼓励开发人员使用实际的对象来解析其数据。