Heim >Web-Frontend >js-Tutorial >Wie kann ich Null- oder undefinierte Attribute aus einem JavaScript-Objekt entfernen?

Wie kann ich Null- oder undefinierte Attribute aus einem JavaScript-Objekt entfernen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-28 04:31:13296Durchsuche

How Can I Remove Null or Undefined Attributes from a JavaScript Object?

Leere Attribute aus einem Objekt in JavaScript entfernen

In JavaScript können Objekte Eigenschaften haben, die undefiniert oder null sind, was den Code überladen kann und es schwieriger machen, damit zu arbeiten. Um dies zu beheben, können wir diese leeren Attribute mithilfe verschiedener Techniken aus einem Objekt entfernen.

ES10/ES2019

Diese Methoden verwenden die Einführung von Object.fromEntries() Methode:

  • Ein Einzeiler: let o = Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));
  • Wie oben, aber als Funktion: function removeEmpty(obj) { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null)); }
  • Eine rekursive Version zum Entfernen von Elementen aus verschachtelten Objekten: function removeEmpty(obj) { return Object.fromEntries( Object.entries(obj) .filter(([_, v]) => v != null) .map(([k, v]) => [k, v === Object(v) ? removeEmpty(v) : v]) ); }

ES6/ES2015

  • Ein mutierender Einzeiler: Object.keys(obj).forEach((k) => obj [k] == null && delete obj[k]);
  • Eine nicht mutierende Version: let o = Object.keys(obj) .filter((k) => obj[k] != null) .reduce((a, k) => ({ ...a, [k]: obj[k] } ), {});
  • Ähnlich wie oben, als Funktion geschrieben: function removeEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}); }
  • Eine rekursive Funktion zur Verarbeitung verschachtelter Objekte: function removeEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce( ( acc, [k, v]) => ({ ...acc, [k]: v === Object(v) ? removeEmpty(v) : v }), {} ); }

ES5/ES2009

  • Eine funktionale, nicht rekursive Version: function removeEmpty(obj) { return Object.keys(obj) .filter (function (k) { return obj[k] != null; }) .reduce(function (acc, k) { acc[k] = obj[k]; return acc; }
  • Eine rekursive Funktionsversion: function removeEmpty(obj) { return Object.keys(obj) .filter(function (k) { return obj[k] != null; }) .reduce(function (acc , k) { acc[k] = typeof obj[k] === "obj" obj[k]; return acc; }

Das obige ist der detaillierte Inhalt vonWie kann ich Null- oder undefinierte Attribute aus einem JavaScript-Objekt entfernen?. 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