如何在CoffeeScript中使用循环构建对象

时间:2016-01-29 11:41:48

标签: coffeescript

目前我有:

  newObject = {}
  for item in myArray
     newObject[item.id] = item.data
  newObject

正如你所看到的,我有一个对象数组,我想最终得到一个对象,该对象由数组中对象的一个​​字段键入,其值是数组中的项。即将数组转换为dict / keyed hash。

以上的作品,但对我来说看起来并不是很好。我怎么用漂亮的CoffeeScript方式做到这一点?

2 个答案:

答案 0 :(得分:0)

我建议使用下划线库中的每个函数:http://underscorejs.org/#each

上面的代码如下所示:

newObject = {}
_.each myArray,(elem)->newObject[elem.id]=elem.data
newObject

优点是下划线具有其他可用的功能。

更简单的方法(不使用下划线库)将是:

 newObject = {}
 newObject[elem.id]=elem.data for elem in myArray
 newObject

答案 1 :(得分:0)

除了理解(Daniel Cioata答案中的第二个代码片段),你可以添加解构赋值:

newObject = { }
newObject[id] = data for { id, data } in myArray
newObject