我有以下实现,它是有效的。
我想知道如何能够修复当前实现中的图例副本。请观看fname="NY"
for (var i=0;i<e.series.data.length;i++){
if (e.series.data[i].valueColor != "" && e.series.data[i].fname != "") {
color = e.series.data[i].valueColor,
legendName=e.series.data[i].fname
}
}
答案 0 :(得分:1)
通过记录您正在绘制的数据,您可以看到为6个项目调用代码。如果您在标签上添加category
,则可以看到正在为男士和女士的商品创建图例:
您应该调试实际生成标签的数据结构。
http://jsfiddle.net/xmufd8t0/1/在控制台中显示:
您如何使用此循环似乎存在问题:您始终使用e.series.data
中的最终元素。如果您想要第一个非空fname
,则在设置break;
后应该有legendName
。否则,它会使数组中的最后一项非空。
无论如何 - 要回答你的问题,你需要在@honerlawd的评论中提到重复数据删除。这是重复数据删除修复:
// outside your function, where you have `debugger`
var dedupes = {};
....
// skip labels that have already been added
if (dedupes.hasOwnProperty(legendName)) {
return;
}
dedupes[legendName] = 1;