Hoe controleer ik of een object een sleutel in JavaScript heeft?

Wat is het juiste om te doen?

if (myObj['key'] == undefined)

of

if (myObj['key'] == null)

of

if (myObj['key'])

Antwoord 1, autoriteit 100%

Probeer de JavaScript inoperator.

if ('key' in myObj)

En het omgekeerde.

if (!('key' in myObj))

Wees voorzichtig!De operator inkomt overeen met alle objectsleutels, inclusief die in de prototypeketen van het object.

Gebruik myObj.hasOwnProperty('key')om de eigen sleutels van een object te controleren en retourneert alleen trueals keybeschikbaar is op myObjdirect:

myObj.hasOwnProperty('key')

Tenzij je een specifieke reden hebt om de operator inte gebruiken, levert het gebruik van myObj.hasOwnProperty('key')het resultaat op waarnaar de meeste code op zoek is.


Antwoord 2, autoriteit 25%

U moet hasOwnProperty. Bijvoorbeeld:

myObj.hasOwnProperty('myKey');

Opmerking: Als u eSlint gebruikt, kan het bovenstaande u een fout geven voor het schenden van de No-prototype-gebouwd, regel, in dat geval is de oplossing zoals hieronder:

Object.prototype.hasOwnProperty.call(myObj, 'myKey');

Other episodes