Javascript关联数组声明中的动态键一行

ajw*_*ood 14 javascript

我希望以下三个关联数组是相同的:

arr1 = { "dynamic":"foo", "bar":"baz" };

key = "dynamic";    
arr2 = { key:"foo", "bar":"baz" };

arr3 = {};
arr3[key] = "foo";
arr3["bar"] = "baz";
Run Code Online (Sandbox Code Playgroud)

在上述例子中,arr1arr3是相同的,但是arr2是不同的.

是否可以在javascript关联数组的声明中使用动态键?

Bri*_*ian 10

这是现在可以在JavaScript对象的声明使用动态密钥,在任何浏览器/平台,支持ES6文字速记:

key = "dynamic";    
arr2 = {
    [key]: "foo",  // "dynamic": "foo"
    "bar": "baz"
};
Run Code Online (Sandbox Code Playgroud)


Thi*_*ter 7

只有[]语法适用于动态键.你不能在文字中使用它们.所以你的答案是否定的,这是不可能的.

但是您可以使用文字来创建所有静态键,然后使用[]语法添加动态键.这通常比使用.[]表示所有元素更漂亮.


小智 6

我为此找到了解决方案。

执行以下操作:

var field='name';

var ourVar={};

ourVar[field] = 'Somethig';
Run Code Online (Sandbox Code Playgroud)

来源:Javascript:变量作为数组键