Comprobar si un objeto tiene una clave

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 comprobar si un valor objetivo existe en un objeto JSON utilizando JavaScript. Utilizaremos la función hasKey() que nos permite comprobar secuencialmente las claves en el objeto para determinar si está presente el valor objetivo. Este laboratorio proporcionará una mejor comprensión de cómo trabajar con objetos JSON en JavaScript.


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/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} javascript/data_types -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} javascript/arith_ops -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} javascript/comp_ops -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} javascript/cond_stmts -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} javascript/array_methods -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} javascript/destr_assign -.-> lab-28520{{"Comprobar si un objeto tiene una clave"}} end

Función de JavaScript para Comprobar si un Objeto Tiene una Clave

Para comprobar si un valor objetivo existe en un objeto de JavaScript, utiliza la función hasKey.

La función toma dos argumentos: obj, el objeto JSON en el que se realizará la búsqueda, y keys, una matriz de claves a comprobar. Estos son los pasos para comprobar si el objeto tiene la clave(s) dada(s):

  1. Comprueba si la matriz keys no está vacía. Si está vacía, devuelve false.
  2. Utiliza el método Array.prototype.every() para iterar sobre la matriz keys y comprobar secuencialmente cada clave hasta la profundidad interna del obj.
  3. Utiliza el método Object.prototype.hasOwnProperty() para comprobar si obj no tiene la clave actual o no es un objeto. Si cualquiera de estas condiciones es verdadera, detén la propagación y devuelve false.
  4. En caso contrario, asigna el valor de la clave a obj para usarlo en la siguiente iteración.
  5. Si se ha iterado correctamente sobre la matriz keys, devuelve true.

Aquí está el código de la función hasKey:

const hasKey = (obj, keys) => {
  return (
    keys.length > 0 &&
    keys.every((key) => {
      if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
      obj = obj[key];
      return true;
    })
  );
};

Aquí hay algunos ejemplos de cómo utilizar la función hasKey:

let obj = {
  a: 1,
  b: { c: 4 },
  "b.d": 5
};

hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false

Resumen

¡Felicitaciones! Has completado el laboratorio Comprobar si un objeto tiene una clave. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.