Maison >interface Web >js tutoriel >Comment puis-je obtenir efficacement une liste des noms de propriétés d'objets JavaScript ?

Comment puis-je obtenir efficacement une liste des noms de propriétés d'objets JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 12:09:14414parcourir

How Can I Efficiently Get a List of JavaScript Object Property Names?

Liste des propriétés des objets JavaScript

Lorsque vous travaillez avec des objets JavaScript, la récupération d'une liste de noms de propriétés peut être essentielle. Supposons que vous ayez un objet défini comme suit :

var myObject = {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};

La question se pose : comment pouvons-nous obtenir efficacement une liste des noms de propriétés (par exemple, ["ircEvent", "method", "regex"]) ?

Navigateurs modernes :

Dans les navigateurs modernes, la méthode Object.keys intégrée fournit une solution élégante :

var keys = Object.keys(myObject);

Polyfill pour les navigateurs existants :

Pour les navigateurs dépourvus de support natif, un polyfill simplifié peut être implémenté :

var getKeys = function(obj) {
   var keys = [];
   for (var key in obj) {
      keys.push(key);
   }
   return keys;
};

Une approche alternative consiste à étendre le prototype Object :

Object.prototype.keys = function() {
   var keys = [];
   for (var key in this) {
      keys.push(key);
   }
   return keys;
};

Cette méthode vous permet d'appeler .keys() sur n'importe quel objet. Cependant, l'extension du prototype peut avoir des effets secondaires et n'est généralement pas recommandée.

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