Considere el siguiente objeto JSON:
{ "data": { "data2": { "myProp": "hello" } } } Necesito poder acceder dinámicamente a la propiedad profunda myProp , pero el problema es que necesito poder escribir la propiedad profunda como una cadena normal. es decir:
let sortByThisValue = 'data.data2.myProp'Así que ya empecé:
let propertyArray = sortByThisValue.split('.') //Do something here let myVal = data.[data2][myProp] //Or data.data2.myPropPuede acceder como a continuación
const obj = { data: { data2: { myProp: "hello", }, }, }; const key = "data.data2.myProp"; const getValue = (obj, key) => { const keys = key.split("."); let value = obj; for (let i = 0; i < keys.length; i++) { value = value[keys[i]]; if (!value) { break; } } return value; }; console.log(getValue(obj, key)); console.log(getValue(obj, 'abc'));