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

Wie extrahiere ich bestimmte Eigenschaften präzise aus einem Objekt in ES6?

DDD
DDDOriginal
2024-12-15 09:48:12194Durchsuche

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

Einzeiler zum Extrahieren von Eigenschaften aus einem Objekt in ES6

Problem:

Wie kann man eine Funktion schreiben, die Wählt in ES6 auf prägnanteste Weise bestimmte Eigenschaften eines Objekts aus?

Initial Lösung:

Der folgende Ansatz verwendet Destrukturierung und ein vereinfachtes Objektliteral, um dies zu erreichen:

(v) => {
    let { id, title } = v;
    return { id, title };
}

Verbesserte Lösung:

A Mithilfe von Parametern kann eine effizientere Lösung erreicht werden, die auch die Wiederholung von Eigenschaftsnamen eliminiert Destrukturierung:

({id, title}) => ({id, title})

Diese Lösung bietet eine prägnantere Alternative unter Beibehaltung der gewünschten Funktionalität.

Alternative Ansätze:

  • Object.assign: Dieser Ansatz kann verwendet werden, um die Attribute der ursprünglichen Eigenschaften beizubehalten und gleichzeitig herauszufiltern nicht aufzählbare Eigenschaften:
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)})))
    );
}

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