Operador de Módulo(%) em JavaScript

Harshit Jindal 12 outubro 2023
  1. Operador restante % em JavaScript
  2. Exemplo de uso do operador restante % em JavaScript
  3. Formulários
Operador de Módulo(%) em JavaScript

Este tutorial ensina como usar o operador de módulo % em JavaScript.

Operador restante % em JavaScript

Ele dá o resto que sobra quando um número (dividendo) é dividido por outro número (divisor). Este operador não é o mesmo que o operador módulo em outras línguas porque tem um propósito diferente. Seus resultados são os mesmos apenas para um dividendo positivo, mas se tivermos um dividendo negativo a e um operador de módulo for aplicado sobre ele, os resultados serão completamente diferentes. O resultado obtido pela expressão ( (a % n) + n) % n usando o operador resto em JavaScript é o mesmo que o resultado obtido usando o operador módulo em a % n.

Exemplo de uso do operador restante % em JavaScript

Módulo com Dividendo Positivo

1 % -2   //  1
2 % 3    //  2
5.5 % 2  // 1.5
12 % 5   //  2
1 % 2    //  1

Restante com Dividendo Negativo

-12 % 5      // -2
    - 1 % 2  // -1
    - 4 % 2  // -0

Restante com NaN

NaN % 2  // NaN

Restante com infinito

Infinity % 2         // NaN
Infinity % 0         // NaN
Infinity % Infinity  // NaN

Formulários

É um número ímpar ou par?

Podemos verificar se um inteiro é par, verificando se ele é divisível por 2. Podemos usar o valor de retorno do operador módulo. Se for 0, significa que o número é par.

function isEven(n) {
  return n % 2 === 0;
}

isEven(6);  // true
isEven(3);  // false

a parte fracionária de um número

Podemos fazer isso simplesmente calculando n % 1.

function getFractionalPart(n) {
  return n % 1;
}

getFractionalPart(2.5);  // 0.5

Converter minutos em horas

Quando dado um número n que representa o número de minutos e queremos convertê-lo em horas e minutos, podemos usar o operador de módulo.

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

Artigo relacionado - JavaScript Operator