在函数中使用变量值作为变量名

The*_*eer 0 javascript mongodb node.js

在下面的代码中:

DbModels.prototype.updateById = function(_collection, id, field, value, callback) {
    this.getCollection(_collection, function(error, sel_collection) {
      if( error ) callback(error)
      else {
        sel_collection.update({_id: ObjectID.createFromHexString(id)}, {$set: {$[field].value:value}}, function(error, updated) {
          if( error ) callback(error)
          else callback(null, updated);
        });
      }
    });
};
Run Code Online (Sandbox Code Playgroud)

我想使用变量字段的值作为$ set中变量的名称.我尝试使用以下代码$ [field] .value(正如您在上面的代码中看到的),这不起作用.有什么建议如何解决这个问题?

谢谢!

kir*_*oid 6

javascript中没有像php这样的语法${$var_name};

可以使用this[var_name]window[var_name](对于浏览器中的全局变量),但除了当前范围之外无法获取局部变量eval,这肯定被认为是坏的.

考虑使用散列(对象)进行变量"作用域/命名空间".