Highchart.js 无需硬编码即可动态添加到数据的向下钻取。

Highchart.js drilldown adding to data dynamicaly without hardcoding.

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

有没有办法在不对值进行硬编码的情况下填充此数据部分?

下面是我尝试使用键值对的代码的一小部分,我省略了大部分原始的 hightchart 饼图代码,如果需要,post 将保留其余部分。

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
            ]
        },.....

以编程方式填充向下钻取数组应该可以正常工作,但 Highcharts 期望数据 属性 是数组数组,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 的逻辑也有点混乱,但如果不知道它应该做什么就很难说。