如何使用_.each作为Node.js中对象的方法名?
问题描述:
我对Node.js的下划线库很陌生,这个问题一直困扰着我。我想在一个键值对的,我早先声明的对象的第一部分使用的价值,但我不断收到错误如何使用_.each作为Node.js中对象的方法名?
TypeError: Object ax has no method 'push'.
,我一直在测试上的代码如下。
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')时,它会创建一个与先前定义的数组无关的嵌套对象,因为它还没有被初始化为数组,所以类型是未知的。但是,我可能是错的。
答
val + 'x'
创建一个字符串,所以你不能引用你以前创建的数组。我会建议使用hashmap(JS对象)。
var my_arrays = {
'ax' : [],
'ay' : []
// etc.
}
然后,你可以做
my_arrays[val + 'x'].push(doc.id)