Operatore modulo(%) in JavaScript

Harshit Jindal 12 ottobre 2023
  1. Operatore rimanente % in JavaScript
  2. Esempio di utilizzo dell’operatore Remainder % in JavaScript
  3. Applicazioni
Operatore modulo(%) in JavaScript

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 avatar Harshit Jindal avatar

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

Articolo correlato - JavaScript Operator