Heim > Web-Frontend > js-Tutorial > Wie kann ich Eigenschaften in einem JavaScript-Objekt filtern?

Wie kann ich Eigenschaften in einem JavaScript-Objekt filtern?

Susan Sarandon
Freigeben: 2024-11-11 20:46:03
Original
428 Leute haben es durchsucht

How Can I Filter Properties in a JavaScript Object?

JavaScript filter()-Methode für Objekte

Während der Array-Typ über die filter()-Methode verfügt, ist dies beim Object-Typ nicht der Fall. Ziel dieses Artikels ist es, eine Lösung für die Implementierung einer solchen Methode bereitzustellen.

Implementierung eines benutzerdefinierten Objektfilters

Ein Ansatz besteht darin, den Object.prototype zu erweitern:

Object.prototype.filter = function(predicate) {
    var result = {};

    for (key in this) {
        if (this.hasOwnProperty(key) && !predicate(this[key])) {
            result[key] = this[key];
        }
    }

    return result;
};
Nach dem Login kopieren

Alternative Lösungen

Von der Erweiterung globaler Prototypen wird jedoch generell abgeraten. Ziehen Sie stattdessen diese Alternativen in Betracht:

1. Verwenden der Reduce- und Object.keys

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. Map- und Spread-Syntax

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

3. Object.assign

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

Beispielverwendung

var foo = { bar: "Yes", moo: undefined };

var filtered = Object.filter(foo, property => typeof property === "undefined");

console.log(filtered); // { moo: undefined }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Eigenschaften in einem JavaScript-Objekt 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