在$ .getJSON调用的回调内部,我具有下面概述的代码。第一个for块聚合“总计”,并将值分配给sov [i]。地图功能计算总数的百分比。然后,我实例化一个名为sovData的变量。

使用jQuery Flot图,任何空对象都不会添加到饼图中,因此最多可用于7个不同的切片/数据集。我只想初始化所需的对象(例如,sovData最多可以在其中包含'howMany-1'(kws.length -1)对象,可能是通过类似于仪表盘[i]和sov [ i]。我该怎么做?

码:

var sov = [], howMany = kws.length, total = 0, i = 0;

for ( i; i < howMany; i++) {
    total += sov[ i ] = +parseInt(data.sov['sov' + ( i+1 ) ],10) || 0;
}
var dashboards = data.dashboards;
sov = $.map( sov, function(v) {
    var s = Math.round( ( (v / total) * 10e3 ) / 100);
    return s < 1 ? 1 : s;
});
var sovData = [{
    label : dashboards[0],
    data : sov[0]
},
{
    label : dashboards[1],
    data : sov[1]
},
{
    label : dashboards[2],
    data : sov[2]
},
{
    label : dashboards[3],
    data : sov[3]
},
{
    label : dashboards[4],
    data : sov[4]
},
{
    label : dashboards[5],
    data : sov[5]
},
{
    label : dashboards[6],
    data : sov[6]
}
]

最佳答案

采用

var sovData = [];
for (var i = 0; i < howMany-1; i++) {
    sovData.push({
        label: dashboards[i],
        data:  sov[i]
    });
}


理论演示:http://jsfiddle.net/gaby/qN3WY/

09-09 20:19