1

如何映射对象数组并基于该对象创建另一个对象(基于元素属性),而不使用临时对象?所以如果我有类似的东西:

 foos = [ { name: 'A' }, { name: 'B' }, { name: 'C' } ]
 objx = {}
 foos.map (x)-> 
     objx[x.name] = 'name is ' + x.name.toLowerCase()

 # objx = { A: 'name is a', B: 'name is b', C: 'name is c' }

没有东西我怎么能完成同样的objx事情?使用或不使用任何帮助程序库 - lodash、ramda、jquery、angular 等。

4

1 回答 1

4

您可以reduce通过将空对象作为累加器传递来执行此操作:

foos.reduce (acc, x) ->
  acc[x.name] = "name is #{x.name.toLowerCase()}"
  acc
,{}
于 2014-12-16T19:31:11.643 回答