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. Cependant, l'effet secondaire est que votre portée est maintenant polluée par deux variables que vous ne vous souciez jamais d'utiliser: si Cependant, dans JavaScript y a-t-il de moyen Je peux jeter les artefacts / variables indésirables de la destruction? P> Bien sûr, les solutions suivantes sont toujours disponibles. P> et p> < PRE> XXX PRE> 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. P> P> non désiréd1 code> et
non désiréd2 code>. p>
_ code> signifiait ne pas vous soucier, vous pouviez Faites quelque chose comme ça p>
_ code> est un identifiant approprié.
Si utilisé une fois de cette manière (
indésirable: _ code>), vous vous retrouverez avec une variable indésirable appelée
_ code>, qui va à l'encontre de l'objectif.
S'il est utilisé plus d'une fois, comme ci-dessus, une erreur est émise: P>
SyntaxError: identificateur '_' a déjà été déclaré code>. P>
3 Réponses :
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"]);
Y a-t-il quelque chose que je peux jeter les artefacts / variables indésirables de la destruction? P>
La seule façon qui n'est pas non plus trop terrible serait de définir une fonction qui fait la même chose: p>
xxx pré> Les variables sont toujours créées mais leur visibilité est limitée à la fonction qui se termine immédiatement. P>
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. P> blockQuote>
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. P> blockQuote>
Introduction 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> p> p> _ 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.
.as-console-wrapper{min-height:100%;}
array.pototype.reduce () code>, qui peut même vous donner certains Performance Boost , comparé à la destruction li>
ul>
.as-console-wrapper{min-height:100%;}
ce qu'ABT:
var {non désiré1: _, non désiré2: __, ... cible} = source; code>