Verifique se a chave existe no objeto em JavaScript

Moataz Farid 12 outubro 2023
  1. Use o método de acesso direto do elemento para verificar se a chave do objeto existe em JavaScript
  2. Use o operador in para verificar se a chave do objeto existe ou não em JavaScript
  3. Use o método hasOwnProperty para verificar se a chave do objeto existe ou não em JavaScript
  4. Use a biblioteca underscore para verificar se a chave do objeto existe ou não no JavaScript
Verifique se a chave existe no objeto em 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.

Artigo relacionado - JavaScript Object