Hola, soy un poco nuevo en esto, así que lo que quiero hacer es
string = { "string2": { "value": "" } } var path = ["string2","value"]¿Puedo de alguna manera obtener el valor con la ruta? Intenté muchas cosas pero nada realmente funcionó
Puedes usar Array.reduce() para esto:
const value = path.reduce((accum, key) => accum[key], string)Hay varios enfoques. Primero, puede usar un bucle para recorrer el camino paso a paso de la siguiente manera:
const obj = { "string2": { "value": "Message" } }; const path = [ "string2", "value" ]; let output = obj; path.forEach(key => { output = output[key]; }); console.log( output );RECURSIÓN
const obj = { "string2": { "value": "Message" } }; const path = [ "string2", "value" ]; const trav = (o,p,i) => (i < p.length - 1) ? trav(o[p[i]],p,i+1) : o[p[i]]; console.log( trav(obj,path,0) );nueva función
const obj = { "string2": { "value": "Message" } }; const path = [ "string2", "value" ]; const output = (new Function(`return (obj.${path.join('.')})`))(); console.log( output );