0

所以目前我有一个看起来像这样的对象

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])

或者基本上只是浏览我的列表并在列表中添加尽可能多的对。我怎样才能做到这一点?

4

1 回答 1

1

来自精美手册

理解也可用于迭代对象中的键和值。用于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)

演示:http: //jsfiddle.net/ambiguous/GnVXa/

于 2013-05-18T18:03:07.710 回答