2014-05-03 12 views
6

Cercando di eseguire il loop su tutto il campo aggiornato, li ho aggiornati e li aggiorna dinamicamente prima di salvare.Javascript equivalente a `send` di Ruby

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

So che Ruby ha un metodo di invio come questo:

doc.send(key) = productNewData[key] 

Credo di poter validare i params dato e utilizzare eval. C'è un altro modo?

+3

Non sono sicuro di quello che stai chiedendo. forse 'doc [chiave] = productNewData [chiave]'. che cos'è productNewData? – Vinz243

+0

sì, mi dispiace. come posso chiudere? – WebQube

risposta

10

Sono due modi per accedere alle proprietà in Javascript: Utilizzo di notazione dot o parentesi. Esempio:

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

Quindi:

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