This question already has answers here:
Dynamically access object property using variable

(16个回答)


6年前关闭。




尝试循环访问所有已更新的字段,并在保存之前动态更新它们。
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]

我想我可以验证给定的参数并使用eval。还有其他办法吗?

最佳答案

它们是访问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();
});

10-02 15:14