forwardFill function

List<num?> forwardFill(
  1. List<num?> values
)

A copy of values with each null replaced by the most recent non-null value before it (last-observation-carried-forward). LEADING nulls have no prior value and stay null.

Example:

forwardFill(<num?>[null, 1, null, null, 3, null]);
// [null, 1, 1, 1, 3, 3]

Audited: 2026-06-12 11:26 EDT

Implementation

List<num?> forwardFill(List<num?> values) {
  final List<num?> filled = <num?>[];
  num? last;
  // Carry the last seen non-null forward; a null before any value stays null.
  for (final num? value in values) {
    if (value != null) {
      last = value;
    }
    filled.add(value ?? last);
  }
  return filled;
}