map method

CsvTable map(
  1. CsvRow transform(
    1. CsvRow row
    )
)

Apply a transform to every row. Returns a new CsvTable; this table is left untouched.

The transform receives a copy of each row, so writing through it (for example row[0] = x) cannot corrupt the source table.

Implementation

CsvTable map(CsvRow Function(CsvRow row) transform) {
  final headerMap = buildHeaderMap();
  final mapped = rawData.map((r) {
    final result = transform(CsvRow(List<dynamic>.from(r), headerMap));
    return List<dynamic>.from(result);
  }).toList();
  return CsvTable.internal(List<String>.from(headers), mapped);
}