Hay una función que devuelve un valor para la clave que especifiqué.
function l(key){ let selectedLang = window.localStorage.getItem('language') || lang.default; return lang[selectedLang][key]; } const en = { sidebar : { "a" : "b", } } l('sidebar') // function gives an object, its okeyPero quiero usar así, ¿cómo puedo hacer eso?
l('sidebar.a') // Now its undifinedDebe profundizar recursivamente, aquí hay una posible solución (también una función recursiva, aunque eso no es necesario):
const obj = {foo: "Foo", bar: {baz: "Bar Baz"}} const access = (object, path) => { const pathArray = Array.isArray(path) ? path : path.split("."); const lastIndex = pathArray.length - 1; return lastIndex > 0 ? access(object, pathArray.slice(0, lastIndex))[pathArray[lastIndex]] : object[pathArray[0]]; } console.log(access(obj, ["foo"])); console.log(access(obj, ["bar", "baz"])); console.log(access(obj, "bar.baz"));