Maison >interface Web >js tutoriel >Comment puis-je tester efficacement les objets JavaScript vides ?

Comment puis-je tester efficacement les objets JavaScript vides ?

DDD
DDDoriginal
2024-12-21 16:37:10793parcourir

How Can I Effectively Test for Empty JavaScript Objects?

Test des objets JavaScript vides

Lors du traitement des réponses AJAX, il est courant de rencontrer des objets vides, tels que var a = {};. Déterminer si un objet est vide est crucial pour diverses tâches d'application.

Object.hasOwn() et for...in Loop :

Pour les environnements ECMAScript 2022, le La méthode Object.hasOwn() peut être utilisée en conjonction avec une boucle for...in pour vérifier les objets vides :

function isEmpty(obj) {
  for (const prop in obj) {
    if (Object.hasOwn(obj, prop)) {
      return false;
    }
  }

  return true;
}

Cette méthode parcourt toutes les propriétés propres de l'objet, et si une propriété est trouvée, elle indique un objet non vide.

Distinguer les objets vides des objets sans propriétés propres :

Si vous devez faire la différence entre des objets vides de type {} et des objets sans propriétés propres (par exemple, des dates), des vérifications de type supplémentaires peuvent être effectué :

function isEmptyObject(value) {
  if (value == null) {
    return false; // null or undefined
  }

  if (typeof value !== 'object') {
    return false; // boolean, number, string, etc.
  }

  const proto = Object.getPrototypeOf(value);
  if (proto !== null && proto !== Object.prototype) {
    return false; // consider 'Object.create(null)'
  }

  return isEmpty(value);
}

Méthodes alternatives :

Si vous n'avez pas accès aux fonctionnalités ES 2022, vous pouvez utiliser l'ancien Object.prototype.hasOwnProperty.call () méthode :

function isEmpty(obj) {
  for (var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
      return false;
    }
  }

  return true;
}

Bibliothèque populaire Fonctions :

De nombreuses bibliothèques populaires fournissent également des fonctions pour vérifier les objets vides :

  • jQuery : $.isEmptyObject({})
  • lodash : _ .isEmpty({})
  • Soulignement : _.isEmpty({})
  • Hoek : Hoek.deepEqual({}, {})
  • ExtJS : Ext.Object.isEmpty({})
  • AngularJS ( version 1) : angulaire.equals({}, {})
  • Ramda : R.isEmpty({})

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