Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich mit JavaScript prüfen, ob ein Objekt leer ist?

Wie kann ich mit JavaScript prüfen, ob ein Objekt leer ist?

王林
王林nach vorne
2023-09-14 14:17:021395Durchsuche

如何使用 JavaScript 检查对象是否为空?

In JavaScript ist Object der wichtigste Datentyp und wir benötigen ihn die meiste Zeit bei der Entwicklung von Anwendungen mit JavaScript-Frameworks. Manchmal müssen wir prüfen, ob ein Objekt leer ist, und Operationen basierend auf dem Objektwert ausführen.

Zum Beispiel erhalten Sie Daten aus der Datenbank. Wenn diese nicht gefunden werden, erhalten Sie möglicherweise ein leeres Objekt. Wenn Sie bestimmte Operationen oder bestimmte Methoden für ein Nullobjekt ausführen, wird ein Fehler in Ihrem Programm ausgelöst. Daher ist es besser, zuerst zu prüfen, ob das Objekt leer ist.

Wir lernen drei Möglichkeiten kennen, mit JavaScript zu überprüfen, ob ein Objekt leer ist.

Verwenden Sie die Object.keys()-Methode

Wir können die Methode Object.keys() verwenden, um die Schlüssel eines Objekts in einem einzelnen Array abzurufen. Anschließend können wir die Länge des Arrays mithilfe seiner Längeneigenschaft überprüfen. Wenn die Länge des Schlüsselarrays 0 ist, bedeutet dies, dass das Objekt keine Schlüssel enthält und das Objekt leer ist.

Grammatik

Benutzer können die Methode Object.keys() gemäß der folgenden Syntax verwenden, um zu überprüfen, ob das Objekt leer ist.

let obj1Len = Object.keys(obj1).length;
if (obj1Len == 0) {
   
   // object is empty
} else {
   
   // object is not empty
} 

In der obigen Syntax gibt Object.keys() ein Array aller Schlüssel von obj1 zurück, und wir verwenden die Längeneigenschaft, um seine Länge zu ermitteln. Mit der obigen Syntax können wir mit der Methode Object.keys() ein Array aller Schlüssel abrufen und auch die Länge des Arrays mit der Eigenschaft „length“ überprüfen

Beispiel

Im folgenden Beispiel haben wir zwei verschiedene Objekte erstellt. obj1 enthält einige Eigenschaften, während obj2 leer ist und keine einzelne Eigenschaft enthält.

Danach verwenden wir die Methode Object.keys() für beide Objekte, um das Schlüsselarray abzurufen und überprüfen die Länge des Arrays, um sicherzustellen, dass das Objekt leer ist oder mindestens eine Eigenschaft enthält.

<html>
<body>
   <h3>Using the<i> object.keys() </i>method to check whether the object contains some value or not</h3>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let obj1 = {
         prop1: 10,
         prop2: "Hi",
      };
      let obj2 = {};
      
      // get the array of all keys using the Object.keys() method,
      
      // check the length of the array using the length property
      let obj1Len = Object.keys(obj1).length;
      if (obj1Len != 0) {
         output.innerHTML += "The value of obj1 is " + JSON.stringify(obj1) + "</br>";
      } else {
         output.innerHTML += "The obj1 object is empty! </br>";
      }
      let obj2Len = Object.keys(obj2).length;
      if (obj2Len != 0) {
         output.innerHTML += "The value of obj1 is " + obj2 + "</br>";
      } else {
         output.innerHTML += "The obj2 object is empty! </br>"; 
      }
   </script>
</body>
</html>

Verwenden Sie eine For-In-Schleife

Die

for-in-Schleife ermöglicht es uns, über die Schlüssel eines Objekts zu iterieren. Wir können for-in verwenden, um jeden Schlüssel des Objekts zu durchlaufen. Hier verwenden wir die for-in-Schleife und prüfen, ob sie das Objekt einmal durchläuft, das Objekt mindestens eine Eigenschaft enthält und nicht leer ist.

Grammatik

Benutzer können der folgenden Syntax folgen, um mithilfe der for-in-Schleife zu prüfen, ob das Objekt leer ist.

function isObjectEmpty(object) {
   for (ele in object) {
      
      // object is not empty
      return;
   }
   
   // if control comes here, the object is empty
} 

Wenn in der obigen Syntax eine einzelne Iteration der for-Schleife auftritt, bedeutet dies, dass wir sichergestellt haben, dass das Objekt mindestens eine Eigenschaft enthält. Daher beenden wir die Funktion mit dem Schlüsselwort return nach der ersten Iteration der

for-in-Schleife.

Beispiel

Im folgenden Beispiel haben wir zwei verschiedene Objekte erstellt. Zusätzlich haben wir die Funktion

isObjectEmpty() erstellt, die unterschiedliche Meldungen ausgibt, je nachdem, ob das Objekt leer ist oder nicht.

Wir haben die Funktion

isObjectEmpty() zweimal mit verschiedenen Objekten aufgerufen, und der Benutzer kann ihre Ausgabe beobachten.

<html>
<body>
   <h3>Using the <i>for-in loop</i> to check whether the object contains some value.</h3>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");
      
      // creating the objects
      let obj1 = {
         prop1: false,
      };
      let obj2 = {};
      
      // creating a function to check object is empty or not
      function isObjectEmpty(object) {
         for (ele in object) {
            
            // if any single iteration occurs using a for-in loop, it means the object contains at least one property
            output.innerHTML += "The object " + JSON.stringify(object) + " is not empty! </br>";
            return;
         }
         output.innerHTML += "The object " + JSON.stringify(object) + " is empty! </br>";
      }
      
      // calling the isObjectEmpty() function by passing different objects as an argument
      isObjectEmpty(obj1);
      isObjectEmpty(obj2);
   </script> 
</body>
</html>

Verwenden Sie die JSON.stringify()-Methode

Die Methode

JSON.stringify() wandelt jeden Wert in die Zeichenfolge um, die wir als Parameter der Methode übergeben. Die Syntax für ein leeres Objekt ähnelt der von {}, und die Methode stringify() gibt für ein leeres Objekt immer „{}“ zurück.

Daher können wir den Rückgabewert der stringify()-Methode mit „{}“ vergleichen, um festzustellen, ob das Objekt leer ist.

Grammatik

Benutzer können die Methode JSON.stringify() gemäß der folgenden Syntax verwenden, um zu überprüfen, ob das Objekt leer ist.

if(JSON.stringify(education) == "{}") {
   
   // object is empty
} else {
   
   // object is not empty
}

Wenn in der obigen Syntax das Bildungsobjekt leer ist, gibt die Methode

JSON.stringify() „{}“ zurück.

Beispiel

Im folgenden Beispiel erstellen wir ein Bildungsobjekt mit einigen Eigenschaften. Daher gibt die Methode

JSON.stringify() nicht „{}“ zurück, sondern den Zeichenfolgenwert des Bildungsobjekts. Daher kann der Benutzer die Ausgabe beobachten, die zeigt, dass das Bildungsobjekt nicht leer ist.

<html>
<body> 
   <h3> Using the<i> JSON.stringify() method </i> to check whether object contains some value or not.</h3>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");
      
      // creating the objects
      let education = {
         totalYears: 12,
         school: "Online",
      };
      
      // convert object to string,
      
      // if object is empty, the JSON.stringify() method will return "{}"
      if (JSON.stringify(education) == "{}") {
         output.innerHTML += "Object is empty!";
      } else {
         output.innerHTML += "Education object is not empty!";
      }
   </script>
</body>
</html>

Wir haben drei Möglichkeiten kennengelernt, um zu überprüfen, ob ein Objekt leer ist. Die erste und dritte Methode erfordern nur eine Codezeile; der Benutzer muss 3 oder 4 Zeilen schreiben, um die zweite Zeile zu verwenden. Für eine bessere Lesbarkeit des Codes ist es daher besser, eine der ersten und dritten Methoden zu verwenden.

Das obige ist der detaillierte Inhalt vonWie kann ich mit JavaScript prüfen, ob ein Objekt leer ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen