Bestimmen der Leerheit von JavaScript-Objekten
Um festzustellen, ob ein JavaScript-Objekt leer ist, stehen verschiedene Methoden und Überlegungen zur Verfügung. Ein Ansatz besteht darin, eine for...in-Schleife in Verbindung mit Object.hasOwn (ECMA 2022) zu verwenden. Diese Schleife durchläuft die eigenen Eigenschaften eines Objekts und gibt false zurück, wenn welche vorhanden sind:
function isEmpty(obj) { for (const prop in obj) { if (Object.hasOwn(obj, prop)) { return false; } } return true; }
Eine andere Methode unterscheidet tussen leere Objekte und andere Objekte ohne eigene Eigenschaften. Dies kann durch Typprüfungen erreicht werden:
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); }
Es ist wichtig zu beachten, dass beim Vergleich mit Object.prototype möglicherweise bereichsübergreifende Objekte übersehen werden. Darüber hinaus wird von Object.keys(obj).length abgeraten, da es ineffizient ist und die Erstellung eines Arrays erfordert.
Aus Gründen der Kompatibilität mit älteren JavaScript-Engines kann Object.hasOwn durch Object.prototype.hasOwnProperty.call ersetzt werden :
function isEmpty(obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { return false; } } return true; }
Verschiedene Bibliotheken bieten Funktionen, die speziell für die Leerprüfung entwickelt wurden Objekte:
Das obige ist der detaillierte Inhalt vonWie kann ich effektiv feststellen, ob ein JavaScript-Objekt leer ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!