Trouver si la variable est divisible par 2


128

Comment déterminer si une variable est divisible par 2? De plus, j'ai besoin de faire une fonction si c'est le cas et de faire une autre fonction si ce n'est pas le cas.


6
@SilentGhost: les gens ont-ils vraiment des devoirs jQuery de nos jours?
Andy E

4
Je ne sais pas à ce sujet Andy, mais les gens savent sûrement comment gâcher leurs étiquettes.
SilentGhost

2
@OP: jQuery n'est pas la réponse à tout ce que vous pourriez vouloir faire en JavaScript;)
Mike Atlas

8
@Mike Wrong! Vous devriez utiliser le plugin arithmétique de base jQuery pour cela! C'est la voie à suivre ...: P (Ironie)
Pablo Cabrera

Réponses:


312

Utiliser le module:

// Will evaluate to true if the variable is divisible by 2
variable % 2 === 0  

30
aimer! simple, facile, et vous ne m'avez pas donné l'impression d'être un idiot de poser la question ... ce qui (pour tous les autres qui ne le savent pas déjà) est un gros problème pour les nouveaux développeurs jQuery / Javascript.
sadmicrowave

6
@sadmicrowave: nous commençons tous en tant que débutants à un moment donné. Le vrai problème est le manque de tutoriels informatifs là-bas. Les didacticiels pour les débutants absolus devraient clarifier la différence entre JavaScript et jQuery et ils plongent directement dans les trucs de jQuery.
Andy E

3
Le premier code que j'ai écrit était en JavaScript, et c'était une boîte d'alerte "bienvenue". C'était en 1997 et c'était pour ma page d'accueil Geocities. Nous commençons certainement tous quelque part (cependant, une formation formelle aide aussi).
Mike Atlas

ne devrait-il pas être: variable% 2 == 0 Informez-moi si je me trompe.
Sean Tank Garvey le

28

Sérieusement, il n'y a pas de plugin jQuery pour les vérifications impaires / paires?

Eh bien, plus maintenant - publier "Oven" un plugin jQuery sous la licence MIT pour tester si un nombre donné est impair / pair.

Le code source est également disponible sur http://jsfiddle.net/7HQNG/

Les suites de tests sont disponibles sur http://jsfiddle.net/zeuRV/

(function() {
    /*
     * isEven(n)
     * @args number n
     * @return boolean returns whether the given number is even
     */
    jQuery.isEven = function(number) {
        return number % 2 == 0;
    };

    /* isOdd(n)
     * @args number n
     * @return boolean returns whether the given number is odd
     */
    jQuery.isOdd = function(number) {
        return !jQuery.isEven(number);
    };
})();​

7
Sensationnel. C'est drôle, mais vous vous rendez compte que quelqu'un va vraiment l'utiliser?
Tim Down

7
@Tim Down: Je me demande si quelqu'un utilise ce plugin arithmétique de base jQuery ? Suivant sur la liste, un générateur de nombres aléatoires jQuery ;-)
Andy E

9
Il y a tellement de choses que jQuery peut faire, comme la création de variables, de fonctions, etc., qui se font toujours avec du JavaScript brut . Juste incroyable ;-)
Anurag

4
@Andy - ROFL sur ce lien et l'image SO - doxdesk.com/img/updates/20091116-so-large.gif Je suppose que la réponse "use jQuery" va atteindre un niveau record en Javascript maintenant :)
Anurag

Vous avez un document Word pour m'expliquer? @Anurag
Todd


11

Vous pouvez utiliser l'opérateur module comme celui-ci, pas besoin de jQuery. Remplacez simplement le alertspar votre code.

var x = 2;
if (x % 2 == 0)
{
  alert('even');
}
else
{
  alert('odd')
}

11

Vous pouvez le faire d'une meilleure manière (jusqu'à 50% plus rapide que l'opérateur modulo):

impair: x & 1 pair:! (x & 1)

Référence: JavaScript haute performance, 8. -> Opérateurs au niveau du bit


C'est une excellente, en fait la meilleure réponse. Cependant, cela nécessite une connaissance des opérateurs Bitwise ..
Sean Tank Garvey

8

Vous pouvez également:

if (x & 1)
 itsOdd();
else
 itsEven();

4
var x = 2;
x % 2 ? oddFunction() : evenFunction();

Je pense que ce code est erroné / imparfait. Vous déclarez une valeur pour la variable x (en particulier en faisant x toujours équivalent au nombre 2) .. première erreur. Ensuite, votre ligne suivante dit simplement si la variable x peut être divisée par 2, puis faites la fonction odd, sinon / sinon faites la fonction even ... Le problème avec cette approche est qu'elle produira toujours la fonction even - jamais la fonction odd - c'est un autre problème / erreur. S'il vous plaît, informez-moi si je me trompe.
Sean Tank Garvey

4
if (x & 1)
 itIsOddNumber();
else
 itIsEvenNumber();

2

J'espère que cela t'aides.

let number = 7;

if(number%2 == 0){      

  //do something;
  console.log('number is Even');  

}else{

  //do otherwise;
  console.log('number is Odd');

}

Voici une fonction complète qui enregistrera à la console la parité de votre entrée.

const checkNumber = (x) => {
  if(number%2 == 0){      

    //do something;
    console.log('number is Even');  

  }else{

    //do otherwise;
    console.log('number is Odd');

  }
}

1

Veuillez écrire le code suivant dans votre console:

var isEven = function(deep) {

  if (deep % 2 === 0) {
        return true;  
    }
    else {
        return false;    
    }
};
isEven(44);

Remarque: il retournera vrai, si le nombre entré est encore faux.


1
merci pour la réponse mais c'est essentiellement la même chose que la réponse acceptée, vous venez de l'envelopper dans une fonction. Quoi qu'il en soit, merci pour votre contribution
sadmicrowave

1

Utilisez le module, mais .. La réponse acceptée ci-dessus est légèrement inexacte. Je crois que parce que x est un type Number en JavaScript, l'opérateur devrait être une double affectation au lieu d'une triple affectation, comme ceci:

x % 2 == 0

N'oubliez pas de déclarer vos variables aussi, donc évidemment cette ligne ne peut pas être écrite de manière autonome. :-) Habituellement utilisé comme une ifdéclaration. J'espère que cela t'aides.


-2

tableau = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

array.each {| x | met x si x% 2 == 0}

rubis: D

2 4 6 8 10


1
Vous vous promenez de 4chan?
Todd
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.