Opérateur modulo(%) en JavaScript
-
Opérateur de reste
%
en JavaScript -
Exemple d’utilisation de l’opérateur de reste
%
en JavaScript - Applications
Ce tutoriel apprend à utiliser l’opérateur modulo %
en JavaScript.
Opérateur de reste %
en JavaScript
Il donne le reste quand un nombre (dividende)
est divisé par un autre nombre (diviseur)
. Cet opérateur n’est pas le même que l’opérateur modulo
dans d’autres langues car il a un but différent. Leurs résultats ne sont les mêmes que pour un dividende positif, mais si nous avons un dividende négatif a
et qu’un opérateur modulo est appliqué dessus, alors les résultats seront complètement différents. Le résultat obtenu par l’expression ( (a % n) + n) % n
en utilisant l’opérateur reste en JavaScript est le même que le résultat obtenu en utilisant l’opérateur modulo dans a % n
.
Exemple d’utilisation de l’opérateur de reste %
en JavaScript
Modulo avec dividende positif
1 % -2 // 1
2 % 3 // 2
5.5 % 2 // 1.5
12 % 5 // 2
1 % 2 // 1
Reste avec dividende négatif
-12 % 5 // -2
- 1 % 2 // -1
- 4 % 2 // -0
Reste avec NaN
NaN % 2 // NaN
Reste avec l’infini
Infinity % 2 // NaN
Infinity % 0 // NaN
Infinity % Infinity // NaN
Applications
Un nombre est-il pair ou impair?
On peut vérifier si un entier est pair en vérifiant s’il est divisible par 2
. Nous pouvons utiliser la valeur de retour de l’opérateur modulo. Si c’est 0
, cela signifie que le nombre est pair.
function isEven(n) {
return n % 2 === 0;
}
isEven(6); // true
isEven(3); // false
La partie fractionnaire d’un nombre
Nous pouvons le faire simplement en calculant n % 1
.
function getFractionalPart(n) {
return n % 1;
}
getFractionalPart(2.5); // 0.5
Convertir des minutes en heures
Lorsqu’on donne un nombre n
qui représente le nombre de minutes et que nous voulons le convertir en heures et minutes, nous pouvons utiliser l’opérateur modulo.
const minutesToHoursAndMinutes = n =>
({hours: Math.floor(n / 60), minutes: n % 60});
minutesToHoursAndMinutes(123); // { hours: 2, minutes: 3 }
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn