Menu
Coddy logo textTech

Verificar se a Chave Existe

Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 16 de 65.

Para verificar uma chave específica em um objeto JSON, use o operador in ou hasOwnProperty(). Por exemplo:

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

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

Isso é útil ao verificar se determinados dados estão presentes antes do processamento.

obj.hasOwnProperty("key") retornará false se obj não possuir key como sua própria propriedade. No entanto, obj.key === undefined não significa necessariamente que hasOwnProperty("key") retornará false. Existem dois casos onde obj.key é undefined:

  • A propriedade não existe de forma alguma → hasOwnProperty("key") retorna false.
  • A propriedade existe, mas tem um valor de undefinedhasOwnProperty("key") retorna true.

Por exemplo:

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

Desafio

Fácil

Crie uma função chamada toggleBookStatus que recebe um objeto de livro como parâmetro. A função deve:

  1. Se o livro tiver uma propriedade isRead que seja true, altere-a para false
  2. Se o livro tiver uma propriedade isRead que seja false, altere-a para true
  3. Se o livro não tiver uma propriedade isRead, adicione-a e defina-a como true
  4. Retorne o objeto de livro modificado

Folha de consulta

Para verificar uma chave específica em um objeto JSON, use o operador in ou hasOwnProperty():

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

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

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

hasOwnProperty() retorna true se a propriedade existir (mesmo que seu valor seja undefined), e false se a propriedade não existir:

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

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

Experimente você mesmo

function toggleBookStatus(book) {
    // Escreva seu código aqui
}
// Não escreva nada fora da função
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo