2014-05-03 58 views
6

試圖在所有更新的字段上循環,並在保存前動態更新它們。Javascript相當於Ruby的'send`

Product.findOne({ _id: productNewData['_id'] }, function (err, doc) { 
    for (var key in productNewData) { 
    # what do I do here? 
    } 
    doc.save(); 
}); 

我知道,Ruby有這樣的發送方法:

doc.send(key) = productNewData[key] 

我想我可以驗證給出的PARAMS和使用eval。有沒有其他方法?

+3

我不知道你問什麼。也許'doc [key] = productNewData [key]'。什麼是productNewData? – Vinz243

+0

是的,對不起。我如何關閉? – WebQube

回答

10

他們是兩種方式來訪問Javascript中的屬性: 使用點符號或括號。例如:

var foo = {bar: 42} 
foo.bar // 42 
foo["bar"] // 42 
var v = "bar" 
foo[v] // 42 
foo.v // undefined 

所以:

Product.findOne({ _id: productNewData['_id'] }, function (err, doc) { 
    for (var key in productNewData) { 
    doc[key] = productNewData[key] 
    } 
    doc.save(); 
});