Heim > Web-Frontend > js-Tutorial > Hauptteil

[Leetcode] ist ein leeres Objekt

Linda Hamilton
Freigeben: 2024-10-02 22:31:30
Original
784 Leute haben es durchsucht

[Leetcode] Is Object Empty

Link zur Frage: https://leetcode.com/problems/is-object-empty/description/

[Problemstellung]

Gegebenes Objekt oder Array, Rückgabe, wenn es leer ist.

  • Ein leeres Objekt enthält keine Schlüssel-Wert-Paare.
  • Ein leeres Array enthält keine Elemente.

Sie können davon ausgehen, dass das Objekt oder Array die Ausgabe von JSON.parse ist.

[Frage verstehen]

  1. Sooo... wir bekommen entweder ein Array oder ein Objekt als Parameter für diese Funktion namens obj. (Ja, ich weiß, super kreativer Name, aber er wird später Sinn ergeben!)

  2. Unsere Aufgabe? Führen Sie einige magische Codierungstricks aus, um zunächst herauszufinden, ob es sich bei diesem Objekt um ein Array oder ein Objekt handelt. Basierend auf diesem Wissen entscheiden wir dann, was als nächstes zu tun ist.

  3. Zuletzt müssen wir prüfen, ob dieses Objekt/Array leer ist oder nicht. Ganz einfach, oder? (Oder ist es...)

[Wichtige Punkte]

  1. Das Wichtigste zuerst: „Ein Array ist technisch gesehen ein Objekt in JavaScript.“ Ja! Das ist richtig – Arrays sind ein besonderer Objekttyp in JS. Lassen Sie sich also nicht verwirren!

  2. Objekterkennung 101: Wir können überprüfen, ob der Parameter tatsächlich ein Objekt (oder Array) ist, indem wir typeof obj === 'object' && obj !== null verwenden. Warum der Teil !== null? Nun, weil null ein Sonderfall in JS ist. Obwohl es technisch gesehen vom Typ Objekt ist, ist es wie die leere Leere des Nichts. Deshalb schließen wir das für alle Fälle aus (auch wenn das Problem es nicht ausdrücklich erwähnt hat, ist es eine gute Angewohnheit).

  3. Undefinierte und Null-Elemente: Sowohl Objekte als auch Arrays können Eigenschaften/Elemente haben, die undefiniert oder Null sind. Aber keine Sorge – sie zählen immer noch, wenn wir die Länge überprüfen. Sie erhalten durch unsere Validierung keine Freikarte!

  4. Ist es ein Array?: Mit Array.isArray(obj) können wir prüfen, ob der Parameter ein Array ist. Es ist jedoch nicht erforderlich, noch einmal zu prüfen, ob es sich um ein Objekt handelt – das haben wir bereits früher getan.

[Lösungscode]

var isEmpty = function (obj) {
  if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null
    if (Array.isArray(obj)) { // If it's an array
      return obj.length === 0; // Return true if it's empty
    } else { // If it's an object
      return Object.keys(obj).length === 0; // Return true if there are no keys
    }
  }
  return false; // If it's neither an object nor an array, return false
};

Nach dem Login kopieren

[Aufschlüsselung ... noch weiter]

Schritt 1: Überprüfen Sie, ob es sich um ein Objekt handelt
Zuerst verwenden wir typeof obj === 'object' && obj !== null, um sicherzustellen, dass die Eingabe ein Objekt und nicht null ist. (Weil wir alle wissen, dass typeof null === 'object eine der seltsamen Eigenheiten von JavaScript ist. Danke, JavaScript!)

Schritt 2: Handelt es sich um ein Array?
Wir verwenden Array.isArray(obj), um zwischen Arrays und regulären Objekten zu unterscheiden. Arrays haben eine Längeneigenschaft, sodass wir direkt prüfen können, ob obj.length === 0.

Schritt 3: Handelt es sich um ein Objekt?
Wenn es sich nicht um ein Array handelt, prüfen wir mithilfe von Object.keys(obj).length === 0, ob es sich um ein Objekt handelt. Diese Methode gibt die Anzahl der Schlüssel im Objekt zurück. Keine Schlüssel? Es ist leer!

Schritt 4: Standardfall
Wenn die Eingabe kein Objekt ist (oder null ist), geben wir „false“ zurück, da die Frage angibt, dass wir entweder nur mit Objekten oder Arrays arbeiten.

Das obige ist der detaillierte Inhalt von[Leetcode] ist ein leeres Objekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage