Détermination du vide des objets JavaScript
Pour déterminer si un objet JavaScript est vide, diverses méthodes et considérations sont disponibles. Une approche consiste à utiliser une boucle for...in en conjonction avec Object.hasOwn (ECMA 2022). Cette boucle parcourt les propres propriétés d'un objet et renvoie false s'il en existe :
function isEmpty(obj) { for (const prop in obj) { if (Object.hasOwn(obj, prop)) { return false; } } return true; }
Une autre méthode distingue les objets vides tussen et les autres objets dépourvus de propriétés propres. Ceci peut être réalisé grâce à des vérifications de type :
function isEmptyObject(value) { if (value == null) { return false; } if (typeof value !== 'object') { return false; } const proto = Object.getPrototypeOf(value); if (proto !== null && proto !== Object.prototype) { return false; } return isEmpty(value); }
Il est crucial de noter que la comparaison avec Object.prototype peut négliger les objets inter-domaines. De plus, Object.keys(obj).length est déconseillé car il est inefficace, nécessitant la création d'un tableau.
Pour la compatibilité avec les anciens moteurs JavaScript, Object.hasOwn peut être remplacé par Object.prototype.hasOwnProperty.call :
function isEmpty(obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { return false; } } return true; }
Diverses bibliothèques proposent des fonctions spécialement conçues pour vérifier les vides objets :
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!