Определение объекта с динамическим ключом в узле js (javascript)

Мне нужно сделать это:

let obj = {}
obj.obj1 =  {'obj11':5}
console.log(obj.obj1.obj11)

//5

но мне нужно динамически определить последний ключ последнего объекта, например, что-то вроде этого:

let obj = {}
key = 'obj11'
obj.obj1 =  { key :5}
console.log(obj.obj1.obj11)
// undefined

person Carlos Felipe    schedule 20.06.2018    source источник


Ответы (3)


Пытаться

obj.obj1[key] = 5;

console.log(obj.obj1.obj11);

Синтаксис нотации объектов не поддерживает переменные в качестве ключей напрямую, но словари java-script поддерживают.

Чтобы оценить переменную в синтаксисе нотации объекта, используйте квадратную скобку, например

obj.obj1 = {[key]: 5};

console.log(obj.obj1.obj11);
person Dan    schedule 20.06.2018

Чтобы определить вычисляемые свойства в объектах javascript, используйте [].

Попробуйте следующее:

let obj = {}
key = 'obj11'
obj.obj1 =  { [key] :5}
console.log(obj.obj1.obj11)

Для справки: Ссылка

person amrender singh    schedule 20.06.2018
comment
@CarlosFelipe Пожалуйста, отметьте как принятый, если ответ вам помог :-) - person amrender singh; 20.06.2018
comment
Нет, отметьте этот ответ как исключенный, если это лучший доступный ответ. - person Jonas Wilms; 20.06.2018

Да, ты можешь это сделать:

console.log(obj.obj1[key]);

Каждый объект в JavaScript — это, по сути, словарь, поэтому вы можете получить к нему доступ через синтаксис словаря.

person Keveloper    schedule 20.06.2018