为什么ES6的Map.forEach使用'value,key'而不是'key,value'进行迭代?

eri*_*oco 8 javascript foreach dictionary ecmascript-6

如上所示MDN,MapforEach回调调用与第一值,然后键.例如:

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

似乎key, value比通常更常见value, key.甚至Map构造函数也需要一[key, value]对数组.

Mr.*_*ama 13

这可能仅仅是为了懒惰.大多数forEach循环只关心value它自己.通过提供它作为第一个参数,您可以构造一个只接受一个参数的函数:

map.forEach(function (value) { /* do something with value */; })
Run Code Online (Sandbox Code Playgroud)

代替

map.forEach(function (unused, value) { /* do something with value */; })
Run Code Online (Sandbox Code Playgroud)

  • 甚至`map.forEach(val => val)` vs `map.forEach((key, val) => val)` (2认同)