Recuperación de valores de objeto JSON anidado

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo recuperar valores anidados de un objeto JSON basado en una matriz de claves. Utilizaremos el método reduce() para recorrer la estructura anidada del objeto y recuperar el valor objetivo. Al final de este laboratorio, tendrás una mejor comprensión de cómo acceder a valores específicos dentro de un objeto JSON complejo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28264{{"Recuperación de valores de objeto JSON anidado"}} javascript/data_types -.-> lab-28264{{"Recuperación de valores de objeto JSON anidado"}} javascript/arith_ops -.-> lab-28264{{"Recuperación de valores de objeto JSON anidado"}} javascript/comp_ops -.-> lab-28264{{"Recuperación de valores de objeto JSON anidado"}} javascript/array_methods -.-> lab-28264{{"Recuperación de valores de objeto JSON anidado"}} javascript/higher_funcs -.-> lab-28264{{"Recuperación de valores de objeto JSON anidado"}} end

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.

Resumen

¡Felicidades! Has completado el laboratorio de Obtener Valor Anidado en Objeto Basado en Matriz de Claves. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.