HOWTO · JavaScript
Opérateur modulo(%) en JavaScript
Ce didacticiel explique comment utiliser l'opérateur modulo(%) dans JavaScript.
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 }