Comprobar si la clave existe en el objeto en JavaScript
- Utilice el método de acceso directo al elemento para comprobar si la clave del objeto existe en JavaScript
-
Utilizar el operador
in
para comprobar si la clave del objeto existe o no en JavaScript -
Utilice el método
hasOwnProperty
para comprobar si la clave del objeto existe o no en JavaScript -
Utilizar la librería
underscore
para comprobar si la clave del objeto existe o no en JavaScript
En este tutorial, aprenderemos a comprobar si la clave existe en JavaScript utilizando múltiples formas.
Utilice el método de acceso directo al elemento para comprobar si la clave del objeto existe en JavaScript
Si una clave existe, no debería devolver undefined
. Para comprobar si devuelve undefined
o no, tenemos acceso directo a las claves, y se puede hacer en dos estilos, el estilo object
, y el estilo de acceso a los corchetes.
En el siguiente ejemplo, mostraremos cómo comprobar si la clave existe mediante el acceso directo a la clave utilizando el estilo de corchetes.
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)
Producción :
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
El Otro estilo para comprobar la existencia de la clave por acceso directo es utilizando el estilo objeto. En el siguiente ejemplo, podemos ver cómo comprobar la existencia de la clave en 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)
Producción :
Is myKey0 exists ? false
Is myKey1 exists ? true
Uno de los inconvenientes de comprobar la existencia de undefined
mediante el acceso directo a la clave es que el valor de la clave puede ser igual a undefined
. Veamos el siguiente ejemplo para mostrar el problema con ese 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
La solución del caso anterior es no asignar nunca undefined
a una propiedad cuando queremos inicializarla con un valor indefinido, sino inicializarla con null
en su lugar.
Si insistimos en utilizar el valor undefined
para inicializar las claves, debemos utilizar el operador in
, el método hasOwnProperty
, o el método _.has
de la biblioteca.
Utilizar el operador in
para comprobar si la clave del objeto existe o no en JavaScript
El operador in
se utiliza simplemente para devolver false
si la clave no se encuentra en el objeto de destino y devuelve true
si se encuentra.
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'))
Producción :
Does language key exists? true
Does nationality key exists? false
Utilice el método hasOwnProperty
para comprobar si la clave del objeto existe o no en JavaScript
Otra forma de comprobar si el objeto contiene una clave de propiedad específica o no es utilizar el método hasOwnProperty
. En el siguiente ejemplo, mostraremos cómo podemos utilizar el 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'))
Producción :
Does the object have language key? true
Does the object have nationality key? false
Utilizar la librería underscore
para comprobar si la clave del objeto existe o no en JavaScript
Si ya estamos utilizando alguno de los métodos de la librería underscore
, podemos utilizar el método _.has()
, ya que devuelve true
si ese objeto tiene la clave proporcionada y devuelve false
en caso contrario.
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'))
Producción :
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
Podemos importar la librería desde aquí.