forEach method Null safety

void forEach(
  1. void f(
    1. String key,
    2. dynamic value
    )
)
override

Applies action to each key/value pair of the map.

Calling action must not add or remove keys from the map.

final planetsByMass = <num, String>{0.81: 'Venus', 1: 'Earth',
  0.11: 'Mars', 17.15: 'Neptune'};

planetsByMass.forEach((key, value) {
  print('$key: $value');
  // 0.81: Venus
  // 1: Earth
  // 0.11: Mars
  // 17.15: Neptune
});

Implementation

void forEach(void f(String key, dynamic value)) {
  var entries = JS('', '#.entries()', this);
  while (true) {
    var entry = JS('', '#.next()', entries);
    if (JS('bool', '#.done', entry)) return;
    f(JS('String', '#.value[0]', entry),
        convertNativeToDart_Dictionary(JS('', '#.value[1]', entry)));
  }
}