Я хочу добавить пару ключ-значение к объекту, но я хочу, чтобы ключ был равен переменной. Вот что я имею в виду:
var variable; Object.assign(myObject, {variable: value})
Есть ли способ сделать это?
Используйте следующий код, чтобы использовать переменную в качестве ключа. Используйте оператор [], чтобы установить значение переменной для ключа.
[]
const key = "variableKey"; const object = {}; Object.assign(object, {[key]: 'value'});
Согласно документации MDN:
Имя свойства объекта может быть любой допустимой строкой JavaScript или всем, что можно преобразовать в строку, включая пустую строку. Пожалуйстаобратите внимание, что все ключи в обозначениях в квадратных скобках преобразуются в строку, если они не являются символами, поскольку имена свойств (ключей) объекта JavaScript могут быть только строками или символами
Имя свойства объекта может быть любой допустимой строкой JavaScript или всем, что можно преобразовать в строку, включая пустую строку.
Пожалуйстаобратите внимание, что все ключи в обозначениях в квадратных скобках преобразуются в строку, если они не являются символами, поскольку имена свойств (ключей) объекта JavaScript могут быть только строками или символами
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
Попробуйте себя в консоли браузера, ключ будет назван "[object Object]", тот же результат вызова obj.toString():
"[object Object]"
obj.toString()
let obj = {} obj[new Object] = 'val' console.log(obj)
Вам не нужно использовать Object.assign(), вы можете просто добавить ключ непосредственно к вашему объекту:
Object.assign()
var variable = "value"; myObject[variable] = variable;