Maison >interface Web >js tutoriel >Comment puis-je extraire efficacement des propriétés spécifiques d'un objet dans 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})
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]}))) }
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)}))) ); }
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!