Operatore modulo(%) in JavaScript
-
Operatore rimanente
%
in JavaScript -
Esempio di utilizzo dell’operatore Remainder
%
in JavaScript - Applicazioni
Questo tutorial insegna come utilizzare l’operatore modulo %
in JavaScript.
Operatore rimanente %
in JavaScript
Dà il resto quando un numero (dividendo)
è diviso per un altro numero (divisore)
. Questo operatore non è lo stesso dell’operatore modulo
in altre lingue perché ha uno scopo diverso. I loro risultati sono gli stessi solo per un dividendo positivo, ma se abbiamo un dividendo negativo a
e su di esso viene applicato un operatore modulo, i risultati saranno completamente diversi. Il risultato ottenuto dall’espressione ( (a % n) + n) % n
utilizzando l’operatore resto in JavaScript è lo stesso del risultato ottenuto utilizzando l’operatore modulo in a % n
.
Esempio di utilizzo dell’operatore Remainder %
in JavaScript
Modulo con dividendo positivo
1 % -2 // 1
2 % 3 // 2
5.5 % 2 // 1.5
12 % 5 // 2
1 % 2 // 1
Resto con dividendo negativo
-12 % 5 // -2
- 1 % 2 // -1
- 4 % 2 // -0
Resto con NaN
NaN % 2 // NaN
Resto con Infinity
Infinity % 2 // NaN
Infinity % 0 // NaN
Infinity % Infinity // NaN
Applicazioni
Un numero è pari o dispari?
Possiamo verificare se un intero è pari controllando se è divisibile per 2
. Possiamo usare il valore restituito dall’operatore modulo. Se è 0
, significa che il numero è pari.
function isEven(n) {
return n % 2 === 0;
}
isEven(6); // true
isEven(3); // false
La parte frazionaria di un numero
Possiamo farlo semplicemente calcolando n % 1
.
function getFractionalPart(n) {
return n % 1;
}
getFractionalPart(2.5); // 0.5
Converti minuti in ore
Quando viene dato un numero n
che rappresenta il numero di minuti e vogliamo convertirlo in ore e minuti, possiamo usare l’operatore 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