Modulo-Operator(%) in JavaScript
-
Restoperator
%
in JavaScript -
Beispiel für die Verwendung des Restoperators
%
in JavaScript - Anwendungen
In diesem Tutorial erfahren Sie, wie Sie den Modulo-Operator %
in JavaScript verwenden.
Restoperator %
in JavaScript
Es gibt den Rest übrig, wenn eine Zahl (Dividende)
durch eine andere Zahl (divisor)
geteilt wird. Dieser Operator ist in anderen Sprachen nicht mit dem Operator modulo
identisch, da er einem anderen Zweck dient. Ihre Ergebnisse sind nur für eine positive Dividende gleich, aber wenn wir eine negative Dividende a
haben und ein Modulo-Operator darauf angewendet wird, sind die Ergebnisse völlig unterschiedlich. Das Ergebnis, das durch den Ausdruck ( (a % n) + n) % n
unter Verwendung des Restoperators in JavaScript erhalten wird, ist das gleiche wie das Ergebnis, das unter Verwendung des Modulooperators in a % n
erhalten wird.
Beispiel für die Verwendung des Restoperators %
in JavaScript
Modulo mit positiver Dividende
1 % -2 // 1
2 % 3 // 2
5.5 % 2 // 1.5
12 % 5 // 2
1 % 2 // 1
Rest mit negativer Dividende
-12 % 5 // -2
- 1 % 2 // -1
- 4 % 2 // -0
Rest mit NaN
NaN % 2 // NaN
Rest mit Unendlichkeit
Infinity % 2 // NaN
Infinity % 0 // NaN
Infinity % Infinity // NaN
Anwendungen
Ist eine Zahl ungerade oder gerade?
Wir können überprüfen, ob eine Ganzzahl gerade ist, indem wir prüfen, ob sie durch 2
teilbar ist. Wir können den Rückgabewert des Modulo-Operators verwenden. Wenn es 0
ist, bedeutet dies, dass die Zahl gerade ist.
function isEven(n) {
return n % 2 === 0;
}
isEven(6); // true
isEven(3); // false
der Bruchteil einer Zahl
Wir können dies einfach tun, indem wir n % 1
berechnen.
function getFractionalPart(n) {
return n % 1;
}
getFractionalPart(2.5); // 0.5
Konvertieren von Minuten in Stunden
Wenn wir eine Zahl n
erhalten, die die Anzahl der Minuten darstellt und die wir in Stunden und Minuten umwandeln möchten, können wir den Modulo-Operator verwenden.
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