为什么_.map iteratee的参数是(value,key)而不是(key,value)?

时间:2014-11-26 19:18:30

标签: functional-programming underscore.js

根据文件,

  

如果list是JavaScript对象,则iteratee的参数将是(value,key,list)。

我不断检查文档以验证订单。为什么value, key不是key, value

[编辑]

我想我(总是)感到困惑,因为CoffeeScript中的for循环在key, value上迭代:

yearsOld = max: 10, ida: 9, tim: 11

ages = for child, age of yearsOld
  "#{child} is #{age}"

1 个答案:

答案 0 :(得分:1)

因为valuemapping over structures中更重要,最通用的部分。对_.map对象可能没那么多,但是当您map对数组时,通常使用一元函数(仅取值)。索引(或键)几乎从未使用过,因此它成为参数列表中通常省略的第二个参数。