我在Angular做了一张旭日形的图表。对于第一级,我直接计算所有其他值的总和;对于第三级,我使用的是point.value
的{{1}},但对于第二级,它将无法像这样工作。
这是我的格式化程序功能。我的目标是计算passAssetCnt/totalAssetCnt * 100
(如果它们具有相同的passAssetCnt/totalAssetCnt * 100
)的百分比。
一切都好,直到我做出将得出百分比的return语句 一切都归零。
我试图在formatter函数内部调用一个单独的函数,该函数可以完成所有这些操作,但是也不会被调用。
reqnum
答案 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) + '%';
}
}