diff --git a/common/changes/@visactor/vtable/2627-bug-minAggregator-NaN_2024-10-22-07-28.json b/common/changes/@visactor/vtable/2627-bug-minAggregator-NaN_2024-10-22-07-28.json new file mode 100644 index 000000000..6117a8bdc --- /dev/null +++ b/common/changes/@visactor/vtable/2627-bug-minAggregator-NaN_2024-10-22-07-28.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: min aggregator type handle with NaN value #2627\n\n", + "type": "none", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} \ No newline at end of file diff --git a/packages/vtable/src/dataset/statistics-helper.ts b/packages/vtable/src/dataset/statistics-helper.ts index 3ee84b6e2..646c30b99 100644 --- a/packages/vtable/src/dataset/statistics-helper.ts +++ b/packages/vtable/src/dataset/statistics-helper.ts @@ -715,6 +715,8 @@ export class MinAggregator extends Aggregator { this.min = record < this.min ? record : this.min; } else if (this.field && typeof record[this.field] === 'number') { this.min = record[this.field] < this.min ? record[this.field] : this.min; + } else if (this.field && !isNaN(record[this.field])) { + this.min = parseFloat(record[this.field]) < this.min ? parseFloat(record[this.field]) : this.min; } } this.clearCacheValue(); @@ -759,6 +761,8 @@ export class MinAggregator extends Aggregator { this.min = record < this.min ? record : this.min; } else if (this.field && typeof record[this.field] === 'number') { this.min = record[this.field] < this.min ? record[this.field] : this.min; + } else if (this.field && !isNaN(record[this.field])) { + this.min = parseFloat(record[this.field]) < this.min ? parseFloat(record[this.field]) : this.min; } } }