431 votes

Convertir le résultat booléen dans nombre de/nombre entier

J'ai une variable qui stocke false ou true, mais j'ai besoin d' 0 ou 1 au lieu de cela, respectivement. Comment puis-je faire cela?

673voto

lonesomeday Points 95456

Utiliser le unaire + de l'opérateur, qui convertit son opérande dans un certain nombre.

+ true; // 1
+ false; // 0

Remarque, bien sûr, que vous devriez toujours nettoyer les données sur le côté serveur, car un utilisateur peut envoyer des données à votre serveur, n'importe ce que le code côté client dit.

486voto

Andy Rose Points 7987

Javascript est un opérateur ternaire, vous pouvez utiliser:

var i = result ? 1 : 0;

150voto

kralyk Points 805

À mon humble avis, la meilleure solution est:

fooBar | 0

Il est utilisé dans les asm.js à force de type entier.

98voto

René Points 4134

Je préfère utiliser le Numéro de fonction. Il prend un objet et le convertit en un nombre.
Exemple:

var myFalseBool = false;
var myTrueBool = true;

var myFalseInt = Number(myFalseBool);
console.log(myFalseInt == 0);

var myTrueInt = Number(myTrueBool);
console.log(myTrueInt == 1);

Ou l'exécuter en jsFiddle.

35voto

tonyjcamp Points 79

Je viens de tomber sur ce raccourci aujourd'hui.

~~(vrai)

~~(faux)

Des gens beaucoup plus intelligents que je ne peux l'expliquer:

http://james.padolsey.com/javascript/double-bitwise-not/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X