如何使用_each作为Node.js中对象的方法名?

我是Node.js下划线库的新手,这个问题让我很困惑。 我想使用键值对中的值作为我之前声明的对象的第一部分,但是我一直在收到错误

TypeError: Object ax has no method 'push'. 

我一直在testing的代码如下。

 db_insert = { first: 'a', second: 'b' } ax = [] ay = [] bx = [] by = [] _.each db_insert, (val, key) -> db.view key, key, (err, body) -> unless err body.rows.forEach (doc) -> currentTime = newTime doc.id (val + 'x').push(doc.id) (val + 'y').push(doc.value) 

我已经尝试过了

 a = [] b = [] _.each db_insert, (val, key) -> db.view key, key, (err, body) -> unless err body.rows.forEach (doc) -> currentTime = newTime doc.id val.push(doc.id) 

但是这也行不通。 我是新来的Node.js,强调所以这可能是一个简单的转义问题,但我觉得当它调用(val +'x')它创build一个嵌套的对象,是不相关的以前定义的数组,因为它还没有被初始化为一个数组,所以types是未知的。 但是,我可能是错的。

val + 'x'创build一个string,所以你不能引用你以前创build的数组。 我会build议使用哈希映射(JS对象)。

 var my_arrays = { 'ax' : [], 'ay' : [] // etc. } 

那么,你可以做

 my_arrays[val + 'x'].push(doc.id)