Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich die Schlüssel-Wert-Paare in einem JavaScript-Objekt effektiv filtern?

Barbara Streisand
Freigeben: 2024-11-24 07:04:11
Original
721 Leute haben es durchsucht

How can I effectively filter the key-value pairs in a JavaScript object?

JavaScript: filter() für Objekte

Der filter()-Prototyp existiert für Array-Typen in ECMAScript 5, jedoch nicht für Objekttypen. Um eine filter()-Funktion für Objekte in JavaScript zu implementieren, können Sie die folgenden Strategien verwenden:

1. Verwenden von Reduce() und Object.keys()

Diese Methode verwendet Reduce(), um die Schlüssel des Objekts zu durchlaufen, und Object.keys(), um diese Schlüssel abzurufen. Dann filtert es die Schlüssel basierend auf einer Prädikatfunktion und gibt ein neues Objekt mit den gefilterten Schlüssel-Wert-Paaren zurück:

Object.filter = (obj, predicate) => {
  Object.keys(obj)
    .filter(key => predicate(obj[key]))
    .reduce((res, key) => (res[key] = obj[key], res), {});
};
Nach dem Login kopieren

2. Verwenden von map() und Spread-Syntax

Ein ähnlicher Ansatz wie (1), aber anstelle von Reduce() können Sie map() und die Spread-Syntax (...) verwenden, um eine neue zu erstellen Objekt:

Object.filter = (obj, predicate) => {
  Object.keys(obj)
    .filter(key => predicate(obj[key]))
    .map(key => ({ [key]: obj[key] }))
    .reduce((a, b) => ({ ...a, ...b }), {});
};
Nach dem Login kopieren

3. Verwenden von Object.entries() und Object.fromEntries()

Diese Methode verwendet Object.entries(), um das Objekt in ein Array von Schlüssel-Wert-Paaren umzuwandeln und dann Object.fromEntries() zur Rekonstruktion das Objekt nach dem Filtern:

Object.filter = (obj, predicate) => {
  return Object.fromEntries(
    Object.entries(obj).filter(([key, value]) => predicate(value))
  );
};
Nach dem Login kopieren

4. Vorsichtsmaßnahme: Vermeiden Sie die Erweiterung von Object.prototype

Während diese Lösungen funktionale filter()-Implementierungen für Objekte bereitstellen, gilt es als schlechte Praxis, Object.prototype direkt zu erweitern. Stellen Sie Ihre Filterfunktion stattdessen als eigenständige Dienstprogrammfunktion bereit, ähnlich den vorhandenen globalen JavaScript-Dienstprogrammfunktionen wie Object.assign() und Object.keys().

Das obige ist der detaillierte Inhalt vonWie kann ich die Schlüssel-Wert-Paare in einem JavaScript-Objekt effektiv filtern?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage