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