将variables内容分配给对象属性名称

我想在node.js中创build一个如下所示的json对象;

{ WantThisName: { property_length: 8 } } 

这是我的代码;

 var property_name = "WantThisName" var length = 8; var Obj_bin; Obj_bin= {property_name: {property_length:length} }; console.log (Obj_bin); 

控制台输出是;

 { property_name: { property_length: 8 } } 

问题在于property_name没有获取variablesproperty_name的内容。

您可以使用计算(dynamic)属性名称:

 > foo = "foozz" 'foozz' > {[foo]: 42} { foozz: 42 } 

它们是es2015的增强对象文字( https://github.com/lukehoban/es6features#enhanced-object-literals )的一部分。

举个例子:

 > var property_name = "WantThisName"; var property_name = "WantThisName"; undefined > var length = 8; undefined > {[property_name]: { property_length: length}} { WantThisName: { property_length: 8 } } > 

尝试

 Obj_bin = {}; Obj_bin[property_name] = { property_length: 8 };