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