Highchart.js下钻动态添加到动态数据而无需硬编码。

时间:2015-07-22 17:34:25

标签: javascript arrays highcharts drilldown keyvaluepair

我想将一个完全填充的数组或keyvalue配对对象添加到向下钻取数据部分,但是当我这样做时,它只显示数组中的第一个值,或者根本不显示任何信息。

是否有一种方法可以填充此数据部分而无需对值进行硬编码?

以下是我尝试使用keyvalue对的代码的简短部分,我遗漏了大部分原始hightchart饼图代码,如果需要,将发布其余代码。

var pieChart = function (userTypes) {
// Create the chart
console.log('pieChart');
var array_keys = new Array();
var array_values = new Array();

for (var key in userTypes) {
    array_keys.push(key);
    array_values.push(userTypes[key]);
}

....
adminNames ={}
for(i =0; i<array_values.length;i++){   
    if(array_values[i]== "admin"){
        admin =admin +1;
        adminNames[array_keys[i]]=i;
    }

....
 drilldown: {
        series: [{
            name: "Admin",
            id: "Admin",

            data: [
                  adminNames
            ]
        },.....

1 个答案:

答案 0 :(得分:1)

以编程方式填充钻取数组应该可以正常工作,但Highcharts期望data属性是一个数组数组see example in documentation

data: [
    ['Cats', 4],
    ['Dogs', 2],
    ['Cows', 1],
    ['Sheep', 2],
    ['Pigs', 1]
]

您的代码将其初始化为一个数组,其中一个元素是一个关联数组 - 如下所示:

data: [
  { 
    'Cats': 4,
    'Dogs': 2,
    'Cows': 1,
    'Sheep': 2,
    'Pigs': 1
  }
]

填充adminNames的逻辑也有点令人困惑,但很难说不知道它应该做什么。