diff --git a/src/component/legend/LegendModel.ts b/src/component/legend/LegendModel.ts index b121c94a9a..9c97f802dd 100644 --- a/src/component/legend/LegendModel.ts +++ b/src/component/legend/LegendModel.ts @@ -354,6 +354,7 @@ class LegendModel extends ComponentMode // which is convinient for user preparing option. const rawData = this.get('data') || potentialData; + const legendNameMap = zrUtil.createHashMap(); const legendData = zrUtil.map(rawData, function (dataItem) { // Can be string or number if (zrUtil.isString(dataItem) || zrUtil.isNumber(dataItem)) { @@ -361,6 +362,11 @@ class LegendModel extends ComponentMode name: dataItem as string }; } + if (legendNameMap.get(dataItem.name)) { + // remove legend name duplicate + return null; + } + legendNameMap.set(dataItem.name, true); return new Model(dataItem, this, this.ecModel); }, this); @@ -368,7 +374,7 @@ class LegendModel extends ComponentMode * @type {Array.} * @private */ - this._data = legendData; + this._data = zrUtil.filter(legendData, item => !!item); } getData() {