Maison > interface Web > js tutoriel > Comment puis-je extraire efficacement des propriétés spécifiques d'un objet dans ES6 ?

Comment puis-je extraire efficacement des propriétés spécifiques d'un objet dans ES6 ?

Barbara Streisand
Libérer: 2024-12-24 17:32:14
original
190 Les gens l'ont consulté

How Can I Efficiently Extract Specific Properties from an Object in ES6?

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

De nombreux développeurs ont recherché une méthode concise pour extraire des propriétés spécifiques d'objets dans ES6. Une solution courante utilise la déstructuration et des littéraux d'objet simplifiés, bien que répéter la liste des champs dans le code puisse être fastidieux.

Solution améliorée

Une approche plus rationalisée implique "paramètre déstructuration", ce qui élimine le besoin d'un paramètre explicite :

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

Généralisé Solution

Pour une plus grande flexibilité, considérez la fonction "pick", qui accepte un objet et un nombre arbitraire de propriétés comme arguments :

function pick(o, ...props) {
    return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})))
}
Copier après la connexion

Préserver les attributs de propriété

Pour préserver les attributs de propriété tels que la configurabilité et les getters/setters tout en excluant les éléments 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

Ces solutions fournissent un moyen concis et polyvalent d'extraire des propriétés spécifiques d'objets dans ES6, répondant à divers cas d'utilisation.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal