Menu
Coddy logo textTech

Comprobar si existe una clave

Parte de la sección Lógica y Flujo del Journey de JavaScript de Coddy — lección 16 de 65.

Para comprobar si existe una clave específica en un objeto JSON, utiliza el operador in o hasOwnProperty(). Por ejemplo:

const product = { "name": "Laptop", "price": 900 };
if ("price" in product) {
  console.log("Key exists!");
}

if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

Esto resulta útil para verificar si ciertos datos están presentes antes de procesarlos.

obj.hasOwnProperty("key") devolverá false si obj no tiene key como su propia propiedad. Sin embargo, obj.key === undefined no necesariamente significa que hasOwnProperty("key") devolverá false. Hay dos casos en los que obj.key es undefined:

  • La propiedad no existe en absoluto → hasOwnProperty("key") devuelve false.
  • La propiedad existe pero tiene un valor de undefinedhasOwnProperty("key") devuelve true.

Por ejemplo:

const obj1 = {};  
console.log(obj1.key); // undefined
console.log(obj1.hasOwnProperty("key"));
// false

const obj2 = { key: undefined };
console.log(obj2.key); // undefined
console.log(obj2.hasOwnProperty("key"));
// true
challenge icon

Desafío

Fácil

Crea una función llamada toggleBookStatus que recibe un objeto libro como parámetro. La función debe:

  1. Si el libro tiene una propiedad isRead que es true, cámbiala a false
  2. Si el libro tiene una propiedad isRead que es false, cámbiala a true
  3. Si el libro no tiene una propiedad isRead, añádela y establécela en true
  4. Devuelve el objeto libro modificado

Hoja de referencia

Para verificar si existe una clave específica en un objeto JSON, utiliza el operador in o hasOwnProperty():

const product = { "name": "Laptop", "price": 900 };

// Usando el operador 'in'
if ("price" in product) {
  console.log("Key exists!");
}

// Usando hasOwnProperty()
if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

hasOwnProperty() devuelve true si la propiedad existe (incluso si su valor es undefined), y false si la propiedad no existe:

const obj1 = {};  
console.log(obj1.hasOwnProperty("key")); // false

const obj2 = { key: undefined };
console.log(obj2.hasOwnProperty("key")); // true

Pruébalo tú mismo

function toggleBookStatus(book) {
    // Escribe tu código aquí
}
// No escribas nada fuera de la función
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo