Heim >Web-Frontend >js-Tutorial >So überprüfen Sie, ob ein Objekt in JavaScript leer ist

So überprüfen Sie, ob ein Objekt in JavaScript leer ist

Christopher Nolan
Christopher NolanOriginal
2025-03-15 09:11:08700Durchsuche

So überprüfen Sie, ob ein Objekt in JavaScript leer ist

In diesem Artikel wird schnell erklärt, wie ein Objekt in JavaScript leer ist.

In der täglichen Entwicklung von JavaScript müssen Sie möglicherweise überprüfen, ob das Objekt leer ist. Wenn Sie dies jemals getan haben, wissen Sie wahrscheinlich, dass es keine einzige direkte Lösung gibt. Sie können jedoch verschiedene Techniken verwenden, um benutzerdefinierte Lösungen zu erstellen, die Ihren eigenen Anwendungsfällen entsprechen. Wenn Sie in Ihrem Projekt eine JavaScript-Dienstprogrammbibliothek verwenden, bietet die Bibliothek möglicherweise bereits eine integrierte Möglichkeit, um zu überprüfen, ob das Objekt leer ist.

Moderne Methode (ES5)

In diesem Abschnitt werden wir verschiedene Methoden erörtern, die Sie in modernen Browsern verwenden können, die ES5 -Versionen unterstützen.

1. Object.keys() -Methode gibt ein Array von Attributnamen des Aufzählungsattributs des angegebenen Objekts zurück. Daher können wir überprüfen, ob das Objekt über Eigenschaften verfügt, indem wir die Länge dieses Arrays berechnen.

Schauen wir uns das folgende Beispiel an.

 Funktion isemptyObject (obj) {
    Rückgabeobjekt.Keys (OBJ) .Length === 0;
}

console.log (isemptyObject ({}));

var bar = {"foo": "1"};
console.log (Object.Keys (Balken) .Length);
console.log (isemptyObject (bar));

Wie im obigen Beispiel gezeigt, wird das foo -Attribut angehängt, sodass isEmptyObject die isEmptyObject -Funktion mit unterschiedlichen Werten zurückgibt.

Beachten Sie, dass isEmptyObject für das Regexp -Objekt true zurückgibt.

 console.log (isemptyObject (Datum.Now ()));
console.log (isemptyObject (neuer regexp ());

Seien Sie auch vorsichtig, da diese Methode mit undefinierten Werten aufgerufen wird. Sie können Ausnahmen verursachen. Später erstellen wir eine kugelsichere Lösung, die bei leeren Eingaben nicht fehlschlägt.

 console.log (isemptyObject (null));

2. Object.getOwnPropertyNames() gibt ein Array aller Eigenschaften des angegebenen Objekts zurück. Obwohl es wie Object.keys() -Methode aussehen kann, berücksichtigt Object.getOwnPropertyNames() -Methode auch nicht-aufzählbare Eigenschaften, während Object.keys() einige Eigenschaften verpasst, die nicht aufgenommen werden können.

Schauen wir uns das folgende Beispiel an.

 Funktion isemptyObject (obj) {
    return Object.getownPropertynames (obj) .Length === 0;
}

console.log (isemptyObject ({}));

var bar = {"foo": "1"};
console.log (Object.getownPropertynames (bar) .Length);
console.log (isemptyObject (bar));

Wie Sie sehen können, verwenden Sie Object.keys() , um Nullwerte zu testen.

Der Kantenfall ist jedoch geringfügig unterschiedlich - Date , aber für null oder JSON.stringify wird false zurückgegeben.

Verwenden Sie {} um zu überprüfen, ob das angegebene Objekt leer ist.

Schauen wir uns das folgende Beispiel an.

 Funktion isemptyObject (obj) {
    return json.stringify (obj) === '{}';
}

console.log (isemptyObject ({}));

var bar = {"foo": "1"};
console.log (json.Stringify (bar));
console.log (isemptyObject (bar));

Auch hier ist die Kantensituation etwas anders. "1651283138454" wird in Regexp verwendet. Verwenden Sie also die Methode von Object.getOwnPropertyNames !

 console.log (isemptyObject (Datum.Now ()));
console.log (isemptyObject (neuer regexp ());

Eine andere Änderung ist false , was möglicherweise nicht das ist, was Sie erwarten.

 console.log (isemptyObject (null));

4. Object.entries() gibt ein Array von Arrays zurück. Jedes Element ist ein Array von Schlüsselwertpaaren von Objekteigenschaften.

Schauen wir uns das folgende Beispiel an, um zu verstehen, wie es genau funktioniert.

 Funktion isemptyObject (obj) {
    returnobjekt.ententries (obj) .Length === 0;
}

console.log (isemptyObject ({}));

var bar = {"foo": "1"};
console.log (Object.Entries (bar));
console.log (Object.Entries (Balken) .Length);
console.log (isemptyObject (bar));

Wie Sie sehen können, gibt Object.keys() das gleiche Ergebnis für unser Regexp -Objektkantenfall -Beispiel. Bei undefinierten Eingängen macht es auch eine Ausnahme.

 console.log (isemptyObject (Datum.Now ()));
console.log (isemptyObject (neuer regexp ());

Kugelsichere Lösungen

Ein Problem mit den oben genannten einfachen Lösungen ist, dass sie für Kantenfälle inkonsistente Ergebnisse liefern: Spezialobjekte (z. B. Datum), undefinierte Werte oder Primitive (wie Ganzförderer). Dies ist eine einfache, aber zuverlässigere Lösung.

 Funktion isEmptyObject (value) {
  const type = typeof Wert
  const isObject = value! = null && type === 'Objekt' '
  return isObject && object.keys (Wert) .Length === 0;
}

Diese Methode wird genau mit ihrem Namen durchgeführt: Sie gibt true zurück, wenn der Eingabewert sowohl ein Objekt als auch ein leeres Objekt ist. Es wird mit null und undefined Werten funktionieren- false zurückgeben, weil sie keine Objekte sind. Für spezielle Objekte wie Regexp wird es true , da sie keine speziellen Schlüssel definieren. Es gibt auch für leere Arrays true und für nicht leere Arrays false zurück.

ES5 vorheriger Plan

In diesem Abschnitt werden wir eine Lösung diskutieren, die auch in älteren Browsern funktioniert. Diese Methode wurde häufig vor der JavaScript-ES5-Ära verwendet, wenn es keine integrierte Methode gab, um zu überprüfen, ob ein Objekt leer war.

Schauen wir uns das folgende Beispiel an.

 Funktion isemptyObject (obj) {
    für (var Eigenschaft in obj) {
        if (obj.hasownProperty (Eigentum)) {
            false zurückgeben;
        }
    }

    zurückkehren;
}

console.log (isemptyObject ({}));
console.log (isemptyObject ({"foo": "1"});

Im obigen Beispiel haben wir eine benutzerdefinierte Funktion erstellt, die Sie aufrufen können, um zu überprüfen, ob das Objekt leer ist. Es akzeptiert einen Parameter, und Sie müssen das Objekt zum Testen bestehen. In Falsch geben wir die isEmptyObject -Funktion mit einem anderen Wert zurück. Wie im obigen Beispiel gezeigt, nennen wir es mit einem anderen Wert und zeichnen die Ausgabe mit der isEmptyObject -Methode auf, mit der Sie überprüfen können, ob das Objekt leer ist.

Schauen wir uns das folgende Beispiel kurz an.

 jQuery.isemptyObject ({});
jQuery.isemptyObject ({"foo": "1"});

Wie Sie sehen können, ist die Verwendung _.isEmpty() sehr einfach.

abschließend

In diesem Artikel diskutieren wir verschiedene Möglichkeiten, um zu überprüfen, ob ein Objekt in JavaScript leer ist. Schauen Sie sich unsere anderen Tutorials für JavaScript -Programmierung an!

Dieser Beitrag wurde mit den Beiträgen von Neema Muganga aktualisiert.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie, ob ein Objekt in JavaScript leer ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn