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

Assign variable content to object property name

我想在 node.js 中创建一个如下所示的 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没有获取变量property_name的内容。

尝试

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

您可以使用计算的(动态)属性 名称:

> 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 } }
>