Controlla se la chiave esiste nell'oggetto in JavaScript
- Utilizzare il metodo di accesso diretto all’elemento per verificare se la chiave dell’oggetto esiste in JavaScript
-
Utilizzare l’operatore
in
per verificare se la chiave dell’oggetto esiste o meno in JavaScript -
Utilizzare il metodo
hasOwnProperty
per verificare se la chiave dell’oggetto esiste o meno in JavaScript -
Utilizza la libreria
underscore
per verificare se la chiave dell’oggetto esiste o meno in JavaScript
In questo tutorial impareremo come verificare se la chiave esiste in JavaScript utilizzando diversi modi.
Utilizzare il metodo di accesso diretto all’elemento per verificare se la chiave dell’oggetto esiste in JavaScript
Se esiste una chiave, non dovrebbe restituire undefined
. Per verificare se restituisce undefined
o meno, abbiamo accesso diretto ai tasti, e può essere fatto in due stili, lo stile object
e lo stile di accesso delle parentesi.
Nell’esempio seguente, mostreremo come verificare se la chiave esiste accedendo direttamente alla chiave utilizzando lo stile delle parentesi.
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)
Produzione:
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
L’altro stile per controllare la chiave tramite accesso diretto utilizza lo stile oggetto. Nell’esempio seguente, possiamo vedere come verificare l’esistenza di tale chiave in 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)
Produzione:
Is myKey0 exists ? false
Is myKey1 exists ? true
Uno degli svantaggi del controllo di undefined
utilizzando l’accesso diretto alla chiave è che il valore della chiave può essere uguale a undefined
. Vediamo il seguente esempio per mostrare il problema con quel metodo.
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)
Produzione:
Is myKey0 exists? false
Is myKey1 exists? true
La soluzione del caso precedente non è mai quella di assegnare undefined
a una proprietà quando si desidera inizializzarla con un valore indefinito, ma inizializzarla invece con null
.
Se insistiamo nell’usare il valore undefined
per inizializzare le chiavi, dovremmo usare l’operatore in
, il metodo hasOwnProperty
o il metodo _.has
della libreria underscore
.
Utilizzare l’operatore in
per verificare se la chiave dell’oggetto esiste o meno in JavaScript
L’operatore in
viene semplicemente utilizzato per restituire false
se la chiave non è stata trovata nell’oggetto di destinazione e restituisce true
se trovata.
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'))
Produzione:
Does language key exists? true
Does nationality key exists? false
Utilizzare il metodo hasOwnProperty
per verificare se la chiave dell’oggetto esiste o meno in JavaScript
Un altro modo per verificare se l’oggetto contiene una chiave di proprietà specifica o meno è utilizzare il metodo hasOwnProperty
. Nel seguente esempio, mostreremo come possiamo usare il metodo 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'))
Produzione:
Does the object have language key? true
Does the object have nationality key? false
Utilizza la libreria underscore
per verificare se la chiave dell’oggetto esiste o meno in JavaScript
Se stiamo già usando uno dei metodi della libreria underscore
, possiamo usare il metodo _.has()
, poiché restituisce true
se quell’oggetto ha la chiave fornita e restituisce false
in 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'))
Produzione:
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
Possiamo importare la libreria da qui.