Heim > Web-Frontend > js-Tutorial > Wie extrahiere ich bestimmte Eigenschaften effizient aus einem Objekt in ES6?

Wie extrahiere ich bestimmte Eigenschaften effizient aus einem Objekt in ES6?

Linda Hamilton
Freigeben: 2024-12-21 18:29:10
Original
139 Leute haben es durchsucht

How to Efficiently Extract Specific Properties from an Object in ES6?

Einzeiler zum Übernehmen einiger Eigenschaften von Objekten in ES6

Problem:

Das Ziel besteht darin, eine prägnante Darstellung zu erstellen Funktion in ES6, die bestimmte Eigenschaften aus einem Objekt extrahiert. Es wird eine Lösung mit Destrukturierung und vereinfachten Objektliteralen vorgestellt, es bestehen jedoch Bedenken hinsichtlich der Wiederholung von Feldlisten.

Antwort:

Um eine schlankere Lösung zu erreichen, sollten Sie die Verwendung von Parametern in Betracht ziehen Destrukturierung, um die Notwendigkeit eines expliziten Parameters zu beseitigen:

({id, title}) => ({id, title})
Nach dem Login kopieren

Die Parameterdestrukturierung ist zwar praktisch, erfordert jedoch dennoch die Wiederholung der Eigenschaft Liste. Für eine allgemeinere Lösung verwenden Sie Folgendes:

function pick(o, ...props) {
    return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})));
}
Nach dem Login kopieren

Diese Lösung verwendet Object.assign, um Objekte zusammenzuführen und dabei bestimmte Eigenschaften (Requisiten) beizubehalten.

Zusätzliche Überlegungen für Eigenschaftsattribute :

Wenn es wichtig ist, die Attribute der ursprünglichen Eigenschaften beizubehalten (wie Konfigurierbarkeit und Getter/Setter) und Um nicht aufzählbare Eigenschaften auszuschließen, beachten Sie Folgendes:

function pick(o, ...props) {
    var has = p => o.propertyIsEnumerable(p),
        get = p => Object.getOwnPropertyDescriptor(o, p);

    return Object.defineProperties({},
        Object.assign({}, ...props
            .filter(prop => has(prop))
            .map(prop => ({prop: get(props)})))
    );
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie extrahiere ich bestimmte Eigenschaften effizient aus einem Objekt in ES6?. 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