0
votes

Sécher lors de l'affectation de propriétés d'objet

Y a-t-il un moyen élégant de se débarrasser de tous les parseddata. code> mots? Cela a l'air très non-sèche pour moi ..

function foo(parsedData) {
  const finalData = {
    KPP: parsedData.KPP,
    OGRN: parsedData.OGRN,
    principalShortName: parsedData.name.short,
    principalFullName: parsedData.name.full,
    principalLegalAddress: parsedData.address.legal,
    principalRealAddress: parsedData.address.real,
    OKATO: parsedData.OKATO,
    principalRegistrationDate: moment(parsedData.history.registration),
    principalTaxRegistrationDate: moment(parsedData.history.taxRegistration),
    OKOPF: parsedData.OKOPF,
    OKVED: parsedData.OKVED,
    headFullName: parsedData.head.fullName,
    headTitle: parsedData.head.fullName,
  });
}


1 commentaires

Oui. Utiliser la déstructuration


3 Réponses :


5
votes

Vous pouvez essayer la déstructuration de l'objet. Référence: https://eslint.org/docs/roules/prefer-destructuring XXX PRE>

Il améliore encore plus avec la notation de propriété sténographie pour les propriétés dont les noms source et cible sont les mêmes: P>

function foo({KPP, OGRN, name, address, OKATO, history, OKOPF, OKVED, head}) {
    const finalData = {
        KPP,
        OGRN,
        principalShortName: name.short,
        principalFullName: name.full,
        principalLegalAddress: address.legal,
        principalRealAddress: address.real,
        OKATO,
        principalRegistrationDate: moment(history.registration),
        principalTaxRegistrationDate: moment(history.taxRegistration),
        OKOPF,
        OKVED,
        headFullName: head.fullName,
        headTitle: head.fullName,
    });
}


2 commentaires

Cela aide certainement. Pour beaucoup de ceux-ci (ceux où les noms de propriété cible et source sont les mêmes), vous pouvez également profiter de la notation de propriété sténiande également: const findata = {KPP, Ogrn, ...};


Vous pouvez déplacer tout le changement de renommage dans la liste des paramètres, mais vous vous retrouvez fondamentalement avec autant de répétition que l'original. Frapper un équilibre (comme celui ci-dessus, la plupart du temps) a du sens.




1
votes

Parfois, il est correct de vous répéter, car ce sera moins de code dans ce cas. Je ne pense pas que vous devriez faire ce qui suit juste pour adhérer au principe sec, mais nous allons ici.

Nous pouvons utiliser la propriété d'objet raccourci en combinaison avec la destruction d'objets pour vous débarrasser de certaines des répétitions. xxx


0 commentaires