average static method
num
average({
- required Iterable<
PlutoRow> rows, - required PlutoColumn column,
- PlutoAggregateFilter? filter,
Implementation
static num average({
required Iterable<PlutoRow> rows,
required PlutoColumn column,
PlutoAggregateFilter? filter,
}) {
if (column.type is! PlutoColumnTypeWithNumberFormat ||
!_hasColumnField(rows: rows, column: column)) {
return 0;
}
final numberColumn = column.type as PlutoColumnTypeWithNumberFormat;
final foundItems = filter != null
? rows.where((row) => filter(row.cells[column.field]!))
: rows;
final Iterable<num> numbers = foundItems.map(
(e) => e.cells[column.field]!.value,
);
return numberColumn.toNumber(numberColumn.applyFormat(numbers.average));
}