Maison > interface Web > js tutoriel > Comment extraire sélectivement les propriétés d'un objet dans ES6 ?

Comment extraire sélectivement les propriétés d'un objet dans ES6 ?

Linda Hamilton
Libérer: 2024-12-17 11:12:26
original
457 Les gens l'ont consulté

How to Selectively Extract Object Properties in ES6?

One-liner pour prendre des propriétés spécifiques d'un objet dans ES6

Q : Comment pouvez-vous extraire uniquement certains attributs d'un objet dans un de manière concise en utilisant ES6 ?

R : Voici quelques approches :

La plus compacte Approche :

Utiliser la déstructuration des paramètres pour éviter d'utiliser une variable paramètre :

1

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

Copier après la connexion

Approche généralisée :

Cette méthode utilise Object. attribuer et calculer des propriétés pour obtenir une solution plus générale :

1

2

3

function pick(o, ...props) {

    return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})));

}

Copier après la connexion

Préserver la propriété Attributs :

Si vous devez conserver les attributs des propriétés, tels que la configurabilité, les getters et les setters, tout en excluant les propriétés non dénombrables, utilisez cette approche :

1

2

3

4

5

6

7

8

9

10

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
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