Wie erkennt man, dass ein Objekt leer ist?
sobes.tech KI
Antwort von AI
Ein Objekt gilt als "leer", wenn es keine eigenen aufzählbaren Eigenschaften hat.
Verifizierungsmethoden:
-
Object.keys(): Gibt ein Array von Strings zurück, die die Namen der aufzählbaren eigenen Eigenschaften des Objekts darstellen. Wenn das Array leer ist, ist das Objekt leer.const myObject = {}; if (Object.keys(myObject).length === 0) { // Objekt ist leer } -
for...inundhasOwnProperty(): Iteriert über die aufzählbaren Eigenschaften des Objekts (einschließlich geerbter) und prüft, ob die Eigenschaft eigene ist.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Objekt ist leer }Object.prototype.hasOwnProperty.call()wird für eine sicherere Überprüfung verwendet, dahasOwnPropertyauf dem Objekt überschrieben sein könnte. -
JSON.stringify(): Wandelt das Objekt in eine JSON-Zeichenkette um. Ein leeres Objekt{}wird zu"{}"const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Objekt ist leer }Diese Methode eignet sich für einfache Objekte ohne Funktionen und zirkuläre Referenzen.
-
Object.getOwnPropertyNames(): Gibt ein Array aller eigenen (nicht geerbten), aufzählbaren und nicht aufzählbaren Eigenschaften (einschließlich Symbole) zurück.const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Objekt ist leer } -
Object.getOwnPropertySymbols(): Gibt ein Array aller eigenen symbolischen Eigenschaften des Objekts zurück. Wenn das Objekt leer ist (und keine symbolischen Eigenschaften hat), ist dieses Array leer.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Objekt ist leer, einschließlich symbolischer Eigenschaften }
Die Wahl der Methode hängt vom Kontext und den Leistungsanforderungen ab. Object.keys() und JSON.stringify() sind in der Regel die schnellsten und prägnantesten für einfache Fälle. Für die Berücksichtigung aller Eigenschaftstypen und geerbten Eigenschaften sind zusätzliche Überprüfungen erforderlich.