Digamos que tengo lo siguiente:
let key1 = 'firstkey' let key2 = 'secondkey' let obj = {} Ahora puedo configurar una clave en obj usando una clave dinámica como:
obj[key1]= 'randomvalue' // Equals to obj: { firstkey: 'randomvalue' }hay una manera rápida de escribir esto:
obj[key1][key2] = 'randomvalue' // Should equal to obj: { firstkey: { secondkey: 'randomvalue'} } ¿Sin necesidad de verificar previamente si la propiedad key1 anidada realmente existe?
Opción 1, usando el operador de propagación
let key1 = "firstkey"; let key2 = "secondkey"; let obj = {}; obj[key1] = { ...obj[key1], [key2]: "randomvalue" }; console.log(obj);Opción 2, usa Lodash.set
_.set(obj, [key1, key2], "randomvalue");