高图表朝阳率百分比,不是相对百分比,而是取决于其他属性

时间:2018-11-25 14:01:08

标签: javascript angular typescript highcharts sunburst-diagram

我在Angular做了一张旭日形的图表。对于第一级,我直接计算所有其他值的总和;对于第三级,我使用的是point.value的{​​{1}},但对于第二级,它将无法像这样工作。

这是我的格式化程序功能。我的目标是计算passAssetCnt/totalAssetCnt * 100(如果它们具有相同的passAssetCnt/totalAssetCnt * 100)的百分比。

一切都好,直到我做出将得出百分比的return语句 一切都归零。

我试图在formatter函数内部调用一个单独的函数,该函数可以完成所有这些操作,但是也不会被调用。

JS FIDDLE LINK

reqnum

1 个答案:

答案 0 :(得分:1)

最后能够通过重新创建阵列然后再次与每个点进行比较来解决它。

 var res =   this.point.series.userOptions.data.reduce((acc, obj)=>{
  var existItem = acc.find(item => item.reqnum === obj.reqnum);
  if(existItem){
    existItem.passAssetCnt += obj.passAssetCnt;
     existItem.totalAssetCnt += obj.totalAssetCnt;
    return acc;
  } 
  acc.push(obj);
  return acc;
}, []);



var j;
for (j = 0; j < res.length; j++) { 
    if(res[j].name == this.point.name) {
        console.log(this.point.name + '<br>' + Math.round(res[j].passAssetCnt/res[j].totalAssetCnt*100) + '%');     
 return this.point.name + '<br>' + Math.round(res[j].passAssetCnt/res[j].totalAssetCnt*100) + '%';
 }
}