【问题标题】:Why does ES6's Map.forEach iterate with 'value, key' instead of 'key, value'?为什么 ES6 的 Map.forEach 使用 'value, key' 而不是 'key, value' 进行迭代?
【发布时间】:2016-01-11 16:17:04
【问题描述】:

MDN所示,MapforEach回调是先用value调用,再用key调用。例如:

map.forEach(function(value, key, map) { ... })

似乎key, valuevalue, key 更常见。即使是 Map constructor 也需要 [key, value] 对的数组。

【问题讨论】:

标签: javascript dictionary foreach ecmascript-6


【解决方案1】:

这可能只是为了懒惰。大多数 forEach 循环只关心 value 本身。通过将其作为第一个参数提供,您可以构造一个只接受一个参数的函数:

map.forEach(function (value) { /* do something with value */; })

代替

map.forEach(function (unused, value) { /* do something with value */; })

【讨论】:

  • 甚至map.forEach(val => val) vs map.forEach((key, val) => val)
  • 嗯,是的,这是有道理的。不过,当我最近第一次使用它时它咬了我,因此 SO 问题......
  • 嗯,类比Array.map,其回调取value, index, array,很有道理。
猜你喜欢
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2011-05-16
  • 2015-07-22
  • 2017-02-01
  • 2012-04-18
  • 2021-08-05
  • 1970-01-01
相关资源
最近更新 更多