Javascript 超过n倍限制后从0重新开始计数

Javascript 超过n倍限制后从0重新开始计数,javascript,Javascript,我想在达到某个限制后将计数值重置为0。并返回值(originalCount-limit) 我尝试了if和进行循环,但无法实现我想要的 //payload is an array of bytes// if (payload[0] == 33) { result.PayloadTtype = 'Vehicle Count'; if (payload[2] > 80) { payload[2] -= 80; //Sensor Reboot due to exce

我想在达到某个限制后将计数值重置为0。并返回值(originalCount-limit)

我尝试了
if
进行
循环,但无法实现我想要的

//payload is an array of bytes//
if (payload[0] == 33) {
    result.PayloadTtype = 'Vehicle Count';
    if (payload[2] > 80) {
        payload[2] -= 80; //Sensor Reboot due to exceeding limit
        result.Count = payload[2];
    }else {
        result.Count = payload[2];
    }
}

我最多可以返回正确的值159,但一旦它在病房上超过160,它就会打印
(80,81…)
。我希望它从0重新开始,即使是
80n的倍数(n=1,2,3…)
通过
80
有效载荷[2]
的模数:

if(有效负载[0]==33){
result.PayloadTtype=‘车辆计数’;
如果(有效载荷[2]>80){
有效负载[2]]=80;//传感器因超出限制而重新启动
结果.计数=有效载荷[2];
}否则{
结果.计数=有效载荷[2];
}
}
您甚至可以为此实现一个功能:
函数最大值(n,最大值){
如果(n>最大值){
n%=最大值;
}
返回n;
}
log(maxValue(10,80))//10
console.log(maxValue(90,80))//10

console.log(maxValue(170,80))//10
通过
80
获取
有效载荷[2]
的模数:

if(有效负载[0]==33){
result.PayloadTtype=‘车辆计数’;
如果(有效载荷[2]>80){
有效负载[2]]=80;//传感器因超出限制而重新启动
结果.计数=有效载荷[2];
}否则{
结果.计数=有效载荷[2];
}
}
您甚至可以为此实现一个功能:
函数最大值(n,最大值){
如果(n>最大值){
n%=最大值;
}
返回n;
}
log(maxValue(10,80))//10
console.log(maxValue(90,80))//10

log(maxValue(170,80))//10
payload[2]=0有什么问题?@Iwrestledabearonce。我认为他想要一种循环,而
90
应该评估为
10
,而不是
0
@iwrestledabence。我可以使有效载荷[2]=0;但这只会打印0。我想把它重置为0,然后再从那里开始计数。还有谁能告诉我在添加注释时如何使用标记吗?@Hemanth在注释中创建代码格式(
asd
),
*asd*
\u asd
创建斜体(asd),
[title](url)
创建链接(),最后
**asd**/code>和
\u asd
创建粗体(asd)。您可以测试
payload[2]=0有什么问题?@Iwrestledabearonce。我认为他想要一种循环,而
90
应该评估为
10
,而不是
0
@iwrestledabence。我可以使有效载荷[2]=0;但这只会打印0。我想把它重置为0,然后再从那里开始计数。还有谁能告诉我在添加注释时如何使用标记吗?@Hemanth在注释中创建代码格式(
asd
),
*asd*
\u asd
创建斜体(asd),
[title](url)
创建链接(),最后
**asd**/code>和
\u asd
创建粗体(asd)。您可以测试,谢谢您的解决方案。这两种方法对我都有效。我当然不知道打勾是为了那个。我还有一个问题,如何在从任意转换为二进制时保留前导零。我查阅了几个并非我想要的解决方案。我正在从有效负载解码日期,无法手动填充零。要存储前导零,必须将数字转换为字符串。如果您可以使用ES2017,那么使用,比如
number.toString().padStart(2/*预期长度*/,0)
。也看到了!谢谢你的解决方案。这两种方法对我都有效。我当然不知道打勾是为了那个。我还有一个问题,如何在从任意转换为二进制时保留前导零。我查阅了几个并非我想要的解决方案。我正在从有效负载解码日期,无法手动填充零。要存储前导零,必须将数字转换为字符串。如果您可以使用ES2017,那么使用,比如
number.toString().padStart(2/*预期长度*/,0)
。也看到了!