Maison > interface Web > js tutoriel > Comment extraire de manière concise des propriétés spécifiques d'un objet dans ES6 ?

Comment extraire de manière concise des propriétés spécifiques d'un objet dans ES6 ?

DDD
Libérer: 2024-12-15 09:48:12
original
187 Les gens l'ont consulté

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

One-liner pour extraire les propriétés d'un objet dans ES6

Problème :

Comment pouvez-vous écrire une fonction qui sélectionne les propriétés spécifiques d'un objet de la manière la plus concise dans ES6 ?

Initial Solution :

L'approche suivante utilise la déstructuration et un littéral objet simplifié pour y parvenir :

(v) => {
    let { id, title } = v;
    return { id, title };
}
Copier après la connexion

Solution améliorée :

Une une solution plus rationalisée, qui élimine également la répétition des noms de propriétés, peut être obtenue via le paramètre déstructuration :

({id, title}) => ({id, title})
Copier après la connexion

Cette solution offre une alternative plus concise tout en conservant la fonctionnalité souhaitée.

Approches alternatives :

  • Object.assign : Cette approche peut être utilisée pour conserver les attributs des propriétés d'origine tout en filtrant également les propriétés non dénombrables. propriétés :
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)})))
    );
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal