6
votes

JavaScript Destructure et attribuer à un nouvel objet

En JavaScript / Typescript,

Quelle est la version courte pour déstructurer puis attribuer un nouvel objet comme ceci:

const payload: MyPayload = { a: 1, b: 2, c: 3, d: 4, e: 5 }

// Destruct
const { a, c, e } = payload;

// New Obj
const newPayload = {
  a, c, e
};


0 commentaires

3 Réponses :


7
votes

Vous pouvez effectuer une affectation de déstructuration avec l'objet et les propriétés abrégées pour un nouvel objet.

const
    getParts = ({ a, c, e }) => ({ a, c, e }),
    payload = { a: 1, b: 2, c: 3, d: 4, e: 5 },
    parts = getParts(payload);

console.log(parts);


1 commentaires

Je suppose que cela ne se compilera pas si l'un de ces accessoires est facultatif dans MyPayload .



1
votes

Vous pouvez créer l'objet pendant la déstructuration en utilisant reste d'objet :

const payload = { a: 1, b: 2, c: 3, d: 4, e: 5 }

const { b, d, ...newPayload } = payload

console.log(newPayload)


0 commentaires

1
votes

Vous pouvez utiliser IIFE

const payload = { a: 1, b: 2, c: 3, d: 4, e: 5 }

const obj = (({a,c,e}) => ({a,c,e}))(payload)

console.log(obj)


0 commentaires