Controlla se la chiave esiste nell'oggetto in JavaScript

Moataz Farid 12 ottobre 2023
  1. Utilizzare il metodo di accesso diretto all’elemento per verificare se la chiave dell’oggetto esiste in JavaScript
  2. Utilizzare l’operatore in per verificare se la chiave dell’oggetto esiste o meno in JavaScript
  3. Utilizzare il metodo hasOwnProperty per verificare se la chiave dell’oggetto esiste o meno in JavaScript
  4. Utilizza la libreria underscore per verificare se la chiave dell’oggetto esiste o meno in JavaScript
Controlla se la chiave esiste nell'oggetto 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.

Articolo correlato - JavaScript Object