Cómo recuperar un valor anidado en un objeto utilizando una matriz de claves
Para recuperar un valor específico de un objeto JSON anidado, puedes utilizar la función deepGet. Esta función recibe un objeto y una matriz de claves, y devuelve el valor objetivo si existe en el objeto.
Para utilizar la función deepGet:
- Crea una matriz de las claves que quieres recuperar del objeto JSON anidado.
- Llama a la función
deepGet con el objeto y la matriz de claves.
- La función devolverá el valor objetivo si existe, o
null si no existe.
Aquí está el código de la función deepGet:
const deepGet = (obj, keys) =>
keys.reduce(
(xs, x) => (xs && xs[x] !== null && xs[x] !== undefined ? xs[x] : null),
obj
);
Y aquí está un ejemplo de cómo utilizar la función deepGet:
let index = 2;
const data = {
foo: {
foz: [1, 2, 3],
bar: {
baz: ["a", "b", "c"]
}
}
};
deepGet(data, ["foo", "foz", index]); // devuelve 3
deepGet(data, ["foo", "bar", "baz", 8, "foz"]); // devuelve null
Para comenzar a practicar la programación, abre la Terminal/SSH y escribe node.