Heim > Web-Frontend > js-Tutorial > Wie kann ich effektiv auf leere JavaScript-Objekte testen?

Wie kann ich effektiv auf leere JavaScript-Objekte testen?

DDD
Freigeben: 2024-12-21 16:37:10
Original
794 Leute haben es durchsucht

How Can I Effectively Test for Empty JavaScript Objects?

Testen auf leere JavaScript-Objekte

Beim Umgang mit AJAX-Antworten stößt man häufig auf leere Objekte, wie z. B. var a = {};. Die Feststellung, ob ein Objekt leer ist, ist für verschiedene Anwendungsaufgaben von entscheidender Bedeutung.

Object.hasOwn() und for...in Loop:

Für ECMAScript 2022-Umgebungen ist die Die Methode Object.hasOwn() kann in Verbindung mit einer for...in-Schleife verwendet werden, um nach leeren Objekten zu suchen:

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

  return true;
}
Nach dem Login kopieren

Diese Methode iteriert durch alle eigenen Eigenschaften des Objekts, und wenn eine Eigenschaft gefunden wird, weist dies auf ein nicht leeres Objekt hin.

Unterscheidung leerer Objekte von Objekten ohne eigene Eigenschaften:

Wenn Sie zwischen {}-ähnlichen leeren Objekten und Objekten ohne eigene Eigenschaften (z. B. Datumsangaben) unterscheiden müssen, können zusätzliche Typprüfungen erforderlich sein durchgeführt:

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

  if (typeof value !== 'object') {
    return false; // boolean, number, string, etc.
  }

  const proto = Object.getPrototypeOf(value);
  if (proto !== null && proto !== Object.prototype) {
    return false; // consider 'Object.create(null)'
  }

  return isEmpty(value);
}
Nach dem Login kopieren

Alternative Methoden:

Wenn Sie keinen Zugriff auf ES 2022-Funktionen haben, können Sie den alten Object.prototype.hasOwnProperty.call verwenden () Methode:

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

  return true;
}
Nach dem Login kopieren

Popular Library Funktionen:

Viele beliebte Bibliotheken bieten auch Funktionen zur Prüfung auf leere Objekte:

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

Das obige ist der detaillierte Inhalt vonWie kann ich effektiv auf leere JavaScript-Objekte testen?. 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