J'ai cette ligne de code: Comme vous pouvez le voir, j'appelle la fonction parseint code> deux fois.
Je me demandais s'il y a un moyen de faire cette affectation appelant la fonction une fois. P> p>
4 Réponses :
Assurez-vous d'utiliser un IIFE:
(n => !isNaN(n) ? n : 0)(parseInt(jQuery('#id').val()))
Le résultat de parseint () code> sera un numéro ou
nan code>, vous pouvez donc utiliser
|| code>:
const my_v = parseInt(jQuery("#id").val()) || 0;
Oui, je me rends compte que nan code> est également un nombre; tu sais ce que je veux dire :)
Dans ce cas, Paysint est exactement ce dont j'ai besoin. Strips personnages et garder des nombres.
@GiaComom Ok, c'est juste mon avertissement standard car il peut surprendre les gens
Si vous avez déjà une valeur entière à cordes, vous pouvez simplement prendre un numéro ou un zéro comme valeur par défaut.
const my_v = Math.floor(+jQuery('#id').val() || 0);
Pourrait donner un résultat différent pour une valeur comme 10.A code> ou même
10.5 code>
@Rajesh, la valeur est déjà un nombre, alors pas besoin de l'analyser à nouveau.
avec un const code> Vous pouvez déclarer plus d'une variable.
const idValue = parseInt(jQuery('#id').val()), my_v = isNaN(idValue) ? 0 : idValue;
Attribuez-le une fois avant d'arriver à cette ligne?
Tu as raison. Puisque je ne connais pas les nouvelles spécifications JavaScript, je vous demandais s'il y a un moyen de faire avec 1 ligne de code.
En outre, vous pouvez simplement utiliser
const my_v = parseint (jQuery ('# id'). Val ()) || 0 code> - Pas besoin d'un opérateur conditionnel dans ce cas.
Notez que vous appelez également le
jQuery ('# id') code> et
val () code> fonctionne deux fois.
Vous pourrait I> le faire dans la même ligne, mais cela ne vaut pas la peine - rend plus difficile de lire.