Verifique se a chave existe no objeto em JavaScript
- Use o método de acesso direto do elemento para verificar se a chave do objeto existe em JavaScript
-
Use o operador
in
para verificar se a chave do objeto existe ou não em JavaScript -
Use o método
hasOwnProperty
para verificar se a chave do objeto existe ou não em JavaScript -
Use a biblioteca
underscore
para verificar se a chave do objeto existe ou não no JavaScript
Neste tutorial, aprenderemos como verificar se a chave existe em JavaScript de várias maneiras.
Use o método de acesso direto do elemento para verificar se a chave do objeto existe em JavaScript
Se existir uma chave, ela não deve retornar undefined
. Para verificar se retorna undefined
ou não, temos acesso direto às teclas, podendo ser feito em dois estilos, o estilo object
e o estilo de acesso colchetes.
No exemplo a seguir, mostraremos como verificar se a chave existe por acesso direto à chave usando o estilo de colchetes.
let myObject = {'mykey1': 'My Value 1', 'mykey2': 'My Value 2'};
function isKeyExists(obj, key) {
if (obj[key] == undefined) {
return false;
} else {
return true;
}
}
let result0 = isKeyExists(myObject, 'mykey0')
console.log('Check for the non-existing key, is key exists > ' + result0)
let result1 = isKeyExists(myObject, 'mykey1')
console.log('Check for the existing key, is key exists > ' + result1)
Resultado:
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
O outro estilo para verificar a chave por acesso direto é usar o estilo de objeto. No exemplo a seguir, podemos ver como verificar a existência dessa chave em JavaScript.
let myObject = {mykey1: 'My Value 1', mykey2: 'My Value 2'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists ? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists ? ' + result1)
Resultado:
Is myKey0 exists ? false
Is myKey1 exists ? true
Uma das desvantagens de verificar o undefined
usando o acesso direto à chave é que o valor da chave pode ser igual a undefined
. Vamos ver o exemplo a seguir para mostrar o problema com esse método.
let myObject = {mykey0: undefined, mykey1: 'My Value 1'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists? ' + result1)
Resultado:
Is myKey0 exists? false
Is myKey1 exists? true
A solução do caso acima é nunca atribuir undefined
a uma propriedade quando você deseja inicializá-la com um valor indefinido, mas inicializá-la com null
em vez disso.
Se insistirmos em usar o valor undefined
para inicializar as chaves, devemos usar o operador in
, o método hasOwnProperty
ou o método _.has
da biblioteca underscore
.
Use o operador in
para verificar se a chave do objeto existe ou não em JavaScript
O operador in
é simplesmente usado para retornar false
se a chave não foi encontrada no objeto de destino e retorna true
se encontrada.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return key in obj;
}
console.log(
'Does language key exists? ' + isKeyExists(myObject, 'language'))
console.log(
'Does nationality key exists? ' + isKeyExists(myObject, 'nationality'))
Resultado:
Does language key exists? true
Does nationality key exists? false
Use o método hasOwnProperty
para verificar se a chave do objeto existe ou não em JavaScript
Outra forma de verificar se o objeto contém uma chave de propriedade específica ou não é usar o método hasOwnProperty
. No exemplo a seguir, mostraremos como podemos usar o método hasOwnProperty
.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return obj.hasOwnProperty(key);
}
console.log(
'Does the object have language key? ' +
isKeyExists(myObject, 'language'))
console.log(
'Does the object have nationality key? ' +
isKeyExists(myObject, 'nationality'))
Resultado:
Does the object have language key? true
Does the object have nationality key? false
Use a biblioteca underscore
para verificar se a chave do objeto existe ou não no JavaScript
Se já estivermos usando qualquer um dos métodos da biblioteca underscore
, podemos usar o método _.has()
, pois ele retorna true
se esse objeto tiver a chave fornecida e retorna false
se não.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
console.log(
'Check using underscore library if the object has language key? ' +
_.has(myObject, 'language'))
console.log(
'Check using underscore library if the object has nationality key? ' +
_.has(myObject, 'nationality'))
Resultado:
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
Podemos importar a biblioteca de aqui.