如何使用coffeescript从对象返回n值

时间:2012-10-10 12:23:41

标签: coffeescript

昨天@SuperSkunk为我解决了这个小问题:How to return settings from an object

我有这个设置来从存储的设置中检索值:

myProject =

 settings:
  value1: one
  value2: two
  value3: three

 getSetting: (key) ->
  @settings[key]

所以,当我致电getSetting('value1')时,我得到one

如何更改代码以传递n-Arguments以获取n值?提前谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用splat和列表推导:

getSetting: (keys...) ->
   (@settings[key] for key in keys)

现在,如果您致电getSettings 'value1', 'value2',结果就是数组['one', 'two']

“按原样返回”意味着可能只是在接收值时进行结构化

所以在调用者方面采取上述例子

[value1, value2] = getSettings "value1", "value2"

答案 1 :(得分:-1)

要使用以下内容,请包含underscore.js(http://underscorejs.org)或咖啡脚本变体(http://coffeescript.org/documentation/docs/underscore.html)

getSettings: (keys) ->
  _.map(_.flatten([keys]), (key) -> @settings(key))

以上内容应该与传入的数组或上面的单个值一起使用。