所以目前我有一个看起来像这样的对象
module.exports = class Book extends events.EventEmitter
constructor: ->
@books =
a: new small_book('aaa')
b: new small_book('bbb')
c: new small_book('ccc')
d: new small_book('ddd')
update: (pair, callback) ->
@books[pair].update_book()
@emit 'update'
但是,我想做的就是这个,
pairs =
a: 'aaa'
b: 'bbb'
c: 'ccc'
d: 'ddd'
module.exports = class Book extends events.EventEmitter
constructor: ->
for each pair in pairs
@books[pair] = new small_book(pairs[pair])
或者基本上只是浏览我的列表并在列表中添加完全相同的对。我怎么能这样做?
答案 0 :(得分:1)
来自fine manual:
理解也可用于迭代对象中的键和值。使用
of
来表示对对象属性的理解,而不是数组中的值。yearsOld = max: 10, ida: 9, tim: 11 ages = for child, age of yearsOld "#{child} is #{age}"
因此,如果你想在一个对象上循环,那就这样做:
constructor: ->
@books = { }
for k, v of pairs
@books[k] = new small_book(v)