Heim > Web-Frontend > js-Tutorial > Wie implementiert man eine benutzerdefinierte „filter()'-Methode für Objekte in JavaScript?

Wie implementiert man eine benutzerdefinierte „filter()'-Methode für Objekte in JavaScript?

Patricia Arquette
Freigeben: 2024-11-13 12:13:02
Original
840 Leute haben es durchsucht

How to Implement a Custom `filter()` Method for Objects in JavaScript?

JavaScript: Implementieren einer benutzerdefinierten filter()-Methode für Objekte

Die ECMAScript 5-Spezifikation führt den filter()-Prototyp für Arrays ein, jedoch nicht für Objekte. Von der Erweiterung der in JavaScript integrierten Objekte wird generell abgeraten. Bei Bedarf kann man jedoch mit den folgenden Ansätzen eine benutzerdefinierte filter()-Funktionalität für Objekte erstellen:

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

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

// Example:
const scores = {
  John: 2,
  Sarah: 3,
  Janet: 1
};
const filtered = Object.filter(scores, score => score > 1);
console.log(filtered);
Nach dem Login kopieren

2. Verwenden von Reduce() und Object.keys() mit Object.assign()

Object.filter = (obj, predicate) =>
  Object.keys(obj)
    .filter(key => predicate(obj[key]))
    .reduce((res, key) => Object.assign(res, { [key]: obj[key] }), {});

// Example: same as above
Nach dem Login kopieren

3. Verwenden von map() und Spread-Syntax

Object.filter = (obj, predicate) =>
  Object.fromEntries(
    Object.entries(obj)
      .filter(([key, value]) => predicate(value))
      .map(([key, value]) => [key, value])
  );

// Example: same as above
Nach dem Login kopieren

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

Object.filter = (obj, predicate) =>
  Object.fromEntries(
    Object.entries(obj).filter(([key, value]) => predicate(value))
  );

// Example: same as above
Nach dem Login kopieren

Denken Sie daran, dass die Erweiterung integrierter Prototypen unbeabsichtigte Folgen haben kann. Im Allgemeinen ist es vorzuziehen, benutzerdefinierte Funktionen als eigenständige Dienstprogramme bereitzustellen oder globale Objekte speziell für bestimmte Funktionen zu erweitern.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine benutzerdefinierte „filter()'-Methode für Objekte in JavaScript?. 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