Maison >interface Web >js tutoriel >Comment puis-je vérifier de manière fiable l'existence de clés dans les objets et tableaux JavaScript ?

Comment puis-je vérifier de manière fiable l'existence de clés dans les objets et tableaux JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 09:44:11944parcourir

How Can I Reliably Check for Key Existence in JavaScript Objects and Arrays?

Détermination de l'existence d'une clé dans les objets JavaScript

Question :

Comment puis-je vérifier de manière fiable si une clé spécifique existe dans un Objet JavaScript ou tableau ?

Préoccupations :

  • L'accès à une clé inexistante renvoie-t-il false ou génère-t-il une erreur ?
  • La recherche d'une clé indéfinie est-elle méthode précise d'existence des clés vérification ?

Réponse :

La vérification de l'existence d'une clé à l'aide de l'opérateur non défini n'est pas recommandée car elle peut être peu fiable. Considérons le scénario suivant :

var obj = { key: undefined };
console.log(obj["key"] !== undefined); // false, but the key exists!

Dans ce cas, la clé "key" existe dans l'objet obj, mais sa valeur n'est pas définie. Par conséquent, vérifier si obj["key"] n'est pas indéfini renvoie false.

Recommandation :

Pour vérifier de manière fiable l'existence d'une clé, utilisez la méthode hasOwnProperty() pour objets et l'opérateur in pour les tableaux et les objets :

  • Pour les objets : obj.hasOwnProperty("key") vérifie si la clé spécifiée (sous forme de chaîne) existe en tant que propriété propre de l'objet (à l'exclusion des propriétés héritées).
  • Pour les tableaux et les objets : la clé dans obj vérifie si la clé spécifiée La clé existe dans le tableau ou l'objet, y compris même les propriétés non propres (héritées des objets parents).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn