forEach 方法

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

将行动应用到映射中每个键/值对。

调用 action 时不能向映射中添加或删除键。

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
});

实现

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)));
  }
}