Heim > Web-Frontend > js-Tutorial > Wie kann ich effektiv feststellen, ob ein JavaScript-Objekt leer ist?

Wie kann ich effektiv feststellen, ob ein JavaScript-Objekt leer ist?

DDD
Freigeben: 2024-12-24 14:00:19
Original
498 Leute haben es durchsucht

How Can I Effectively Determine if a JavaScript Object is Empty?

Bestimmen der Leerheit von JavaScript-Objekten

Um festzustellen, ob ein JavaScript-Objekt leer ist, stehen verschiedene Methoden und Überlegungen zur Verfügung. Ein Ansatz besteht darin, eine for...in-Schleife in Verbindung mit Object.hasOwn (ECMA 2022) zu verwenden. Diese Schleife durchläuft die eigenen Eigenschaften eines Objekts und gibt false zurück, wenn welche vorhanden sind:

function isEmpty(obj) {
  for (const prop in obj) {
    if (Object.hasOwn(obj, prop)) {
      return false;
    }
  }

  return true;
}
Nach dem Login kopieren

Eine andere Methode unterscheidet tussen leere Objekte und andere Objekte ohne eigene Eigenschaften. Dies kann durch Typprüfungen erreicht werden:

function isEmptyObject(value) {
  if (value == null) {
    return false;
  }

  if (typeof value !== 'object') {
    return false;
  }

  const proto = Object.getPrototypeOf(value);

  if (proto !== null && proto !== Object.prototype) {
    return false;
  }

  return isEmpty(value);
}
Nach dem Login kopieren

Es ist wichtig zu beachten, dass beim Vergleich mit Object.prototype möglicherweise bereichsübergreifende Objekte übersehen werden. Darüber hinaus wird von Object.keys(obj).length abgeraten, da es ineffizient ist und die Erstellung eines Arrays erfordert.

Aus Gründen der Kompatibilität mit älteren JavaScript-Engines kann Object.hasOwn durch Object.prototype.hasOwnProperty.call ersetzt werden :

function isEmpty(obj) {
  for (var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
      return false;
    }
  }

  return true;
}
Nach dem Login kopieren

Verschiedene Bibliotheken bieten Funktionen, die speziell für die Leerprüfung entwickelt wurden Objekte:

  • jQuery: jQuery.isEmptyObject({}) // true
  • Lodash: _.isEmpty({}) // true
  • Unterstrich: _ .isEmpty({}) // true
  • Hoek: Hoek.deepEqual({}, {}) // true
  • ExtJS: Ext.Object.isEmpty({}) // true
  • AngularJS (Version 1): angle.equals({}, {}) // wahr
  • Ramda: R.isEmpty({}) // wahr

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

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage