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")retornafalse. - A propriedade existe, mas tem um valor de
undefined→hasOwnProperty("key")retornatrue.
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"));
// trueDesafio
FácilCrie uma função chamada toggleBookStatus que recebe um objeto de livro como parâmetro. A função deve:
- Se o livro tiver uma propriedade
isReadque sejatrue, altere-a parafalse - Se o livro tiver uma propriedade
isReadque sejafalse, altere-a paratrue - Se o livro não tiver uma propriedade
isRead, adicione-a e defina-a comotrue - 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")); // trueExperimente você mesmo
function toggleBookStatus(book) {
// Escreva seu código aqui
}
// Não escreva nada fora da funçãoEsta 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
1Strings em Profundidade
Fundamentos de StringsIterar sobre StringsTemplate LiteralsMétodos de StringRecapitulação - String Weaver4JSON Parte 2
Iterar sobre JSONJSON AninhadoEncadeamento Opcional em JSONCópia Rasa e ProfundaRecapitulação - Loja de BicicletasRecapitulação - Sistema Solar7Sistema de Gerenciamento de Biblioteca
Visão Geral do ProjetoAdicionando Livros10Gerenciar Sistema de Festival
Visão Geral do ProjetoAdicionar Filmes e Locais2Arrays Multidimensionais
Fundamentos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DRecapitulação - Arrays 2DAdição e Subtração de MatrizesArrays IrregularesArrays 3D e AlémPadrões Comuns de Arrays 2DRecapitulação - Tudo Sobre Arrays5Sets Parte 1
O que é um Set?Iterando sobre SetsAdicionando um elementoRemovendo um elementoVerificando se um elemento existeTamanho e Is EmptyCopy e ClearRecapitulação - O básico de Sets8Tópicos Interessantes sobre Arrays
Desestruturação de ArraysSintaxe Spread em ArraysArrays EsparsosRecapitulação - Workshop de Arrays3JSON Parte 1
O que é um JSON?Verificar se a Chave ExisteMétodos de ObjetoO Spread Operator Parte 1O Spread Operator Parte 2Remover ChavesRecapitulação - Manipular Chaves JSON