当简化我的代码时,堆栈溢出用户改变了这行代码:
if (place > sequence.length -1) {
place = 0;
到此:
place = place % sequence.length;
我想知道这条线实际上做了什么,以及如何定义这条线的使用和百分号的使用。提前感谢您的帮助。
答案 0 :(得分:4)
(%)是模数运算符,它将让你有其余的place / sequence.length。
5 % 1 = 0 // because 1 divides 5 (or any other number perfectly)
10 % 3 = 1 // Attempting to divide 10 by 3 would leave remainder as 1
答案 1 :(得分:0)
%
符号在大多数编程语言中使用,包括JavaScript, Modulu 。
modulo是用于在将一个数字除以另一个数字之后查找余数的操作用法。
例如:
7%3 = 1
10%2 = 0
9%5 = 4
答案 2 :(得分:0)
它是reminder operator %
,而不是模数运算符,Javascript实际上没有。
剩余(%)
当一个操作数除以第二个操作数时,余数运算符返回剩余的余数。它总是采取红利的标志,而不是除数。它使用内置的模数函数来生成结果,该结果是
var1
除以var2
的整数余数 - 例如 -var1
modulovar2
。 There is a proposal to get an actual modulo operator in a future version of ECMAScript,区别在于模运算符结果将采用除数的符号,而不是被除数。
console.log(-4 & 3);
console.log(-3 & 3);
console.log(-2 & 3);
console.log(-1 & 3);
console.log(0 & 3);
console.log(1 & 3);
console.log(2 & 3);
console.log(3 & 3);
.as-console-wrapper { max-height: 100% !important; top: 0; }