0
votes

ES6 Dispose de l'objet déstructurant le reste de gauche (coupe d'objet)

Une belle utilisation de la fonction de déstructuration lorsqu'il est utilisé avec des paramètres de repos, vous pouvez obtenir des clones à découpage. xxx

Cependant, l'effet secondaire est que votre portée est maintenant polluée par deux variables que vous ne vous souciez jamais d'utiliser: non désiréd1 et non désiréd2 .

si _ signifiait ne pas vous soucier, vous pouviez Faites quelque chose comme ça xxx

Cependant, dans JavaScript _ est un identifiant approprié. Si utilisé une fois de cette manière ( indésirable: _ ), vous vous retrouverez avec une variable indésirable appelée _ , qui va à l'encontre de l'objectif. S'il est utilisé plus d'une fois, comme ci-dessus, une erreur est émise:

SyntaxError: identificateur '_' a déjà été déclaré .

y a-t-il de moyen Je peux jeter les artefacts / variables indésirables de la destruction?

Bien sûr, les solutions suivantes sont toujours disponibles. xxx

et < PRE> XXX

Cependant, ce faisant cela avec la déstructuration semble être le moyen le plus propre si vous clonant un objet avec de nombreux paramètres et que vous devez exclure un couple.


1 commentaires

ce qu'ABT: var {non désiré1: _, non désiré2: __, ... cible} = source;


3 Réponses :


0
votes

Utiliser _ code>, __ code>, ___ code> ou juste méthode pour exclure:: D HAHA

function prop(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;
  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }
  return target;
}

var source = {
  w1: "val1",
  w2: "val2",
  unwanted1: "val3",
  unwanted2: "val4"
};
var target = prop(source, ["unwanted1", "unwanted2"]);


0 commentaires

0
votes

Y a-t-il quelque chose que je peux jeter les artefacts / variables indésirables de la destruction?

La seule façon qui n'est pas non plus trop terrible serait de définir une fonction qui fait la même chose: xxx

Les variables sont toujours créées mais leur visibilité est limitée à la fonction qui se termine immédiatement.

Cependant, ce faisant que cela ne semble que la déstructuration semble être le moyen le plus propre que si vous clonant un objet avec de nombreux paramètres et que vous devez exclure un couple.

L'inconvénient de l'approche ci-dessus est que la fonction est spécifique à un objet spécifique. Vous ne pouvez pas le réutiliser pour d'autres objets. Bien sûr, c'est plutôt petit alors peut-être que ce n'est pas une grosse affaire. Mais avoir une fonction d'assistance plus générique pourrait être plus facile à comprendre.


0 commentaires

2
votes

Introduction _ code>, __ code>, ___ code>, etc pour déposer 1,2,3 ou plusieurs propriétés ne font pas beaucoup de différence que cela crée toujours les variables, qui '... vous ne vous souciez jamais d'utiliser' em> et d'ailleurs, il menace d'ajouter une saveur de spaghettis à votre code.

Cependant, puisque vous devez indiquer explicitement Quelles propriétés exactement que vous souhaitez laisser tomber, on peut considérer les autres techniques em> couper les objets em>, par exemple p>

  • Filtre Propriétés non désirées Li> ul>

    p>

    .as-console-wrapper{min-height:100%;}
    • Utilisation de array.pototype.reduce () code>, qui peut même vous donner certains Performance Boost , comparé à la destruction li> ul>

      p>

      .as-console-wrapper{min-height:100%;}


0 commentaires