Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是否可以向对象添加一个键值对,并使该键等于一个变量?_Javascript_Object_Variables - Fatal编程技术网

Javascript 我是否可以向对象添加一个键值对,并使该键等于一个变量?

Javascript 我是否可以向对象添加一个键值对,并使该键等于一个变量?,javascript,object,variables,Javascript,Object,Variables,我想给一个对象添加一个键值对,但我希望键值等于一个变量。我的意思是: var variable; Object.assign(myObject, {variable: value}) 有没有办法做到这一点 使用以下代码将变量用作键。使用[]运算符将变量值设置为键 const key = "variableKey"; const object = {}; Object.assign(object, {[key]: 'value'}); 您不需要使用Object.assign(),只需将

我想给一个对象添加一个键值对,但我希望键值等于一个变量。我的意思是:

var variable;

Object.assign(myObject, {variable: value})

有没有办法做到这一点

使用以下代码将变量用作键。使用
[]
运算符将变量值设置为键

const key = "variableKey";

const object = {};

Object.assign(object, {[key]: 'value'});


您不需要使用
Object.assign()
,只需将密钥直接添加到对象:

var variable = "value";

myObject[variable] = variable;

根据MDN文件:

对象属性名称可以是任何有效的JavaScript字符串,也可以是任何可以转换为字符串的内容,包括空字符串

请注意,方括号表示法中的所有键都转换为字符串,除非它们是符号,因为JavaScript对象属性名称(键)只能是字符串或符号

在浏览器控制台中尝试一下,该键将命名为
“[object object]”
,调用
obj.toString()
的结果相同:


ES6引入计算属性名称后,@GeorgeJempty的可能重复项不相关
{[computed]:somveValue}
@VLAZ肯定最相关。这个问题仍然可以接受反映ES6的答案。在这里总是发生这样的事情。
let obj = {}
obj[new Object] = 'val'
console.log(obj)