Testen auf leere JavaScript-Objekte
Beim Umgang mit AJAX-Antworten stößt man häufig auf leere Objekte, wie z. B. var a = {};. Die Feststellung, ob ein Objekt leer ist, ist für verschiedene Anwendungsaufgaben von entscheidender Bedeutung.
Object.hasOwn() und for...in Loop:
Für ECMAScript 2022-Umgebungen ist die Die Methode Object.hasOwn() kann in Verbindung mit einer for...in-Schleife verwendet werden, um nach leeren Objekten zu suchen:
function isEmpty(obj) { for (const prop in obj) { if (Object.hasOwn(obj, prop)) { return false; } } return true; }
Diese Methode iteriert durch alle eigenen Eigenschaften des Objekts, und wenn eine Eigenschaft gefunden wird, weist dies auf ein nicht leeres Objekt hin.
Unterscheidung leerer Objekte von Objekten ohne eigene Eigenschaften:
Wenn Sie zwischen {}-ähnlichen leeren Objekten und Objekten ohne eigene Eigenschaften (z. B. Datumsangaben) unterscheiden müssen, können zusätzliche Typprüfungen erforderlich sein durchgeführt:
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); }
Alternative Methoden:
Wenn Sie keinen Zugriff auf ES 2022-Funktionen haben, können Sie den alten Object.prototype.hasOwnProperty.call verwenden () Methode:
function isEmpty(obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { return false; } } return true; }
Popular Library Funktionen:
Viele beliebte Bibliotheken bieten auch Funktionen zur Prüfung auf leere Objekte:
Das obige ist der detaillierte Inhalt vonWie kann ich effektiv auf leere JavaScript-Objekte testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!