Javascript 超过n倍限制后从0重新开始计数
我想在达到某个限制后将计数值重置为0。并返回值(originalCount-limit) 我尝试了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
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)
。也看到了!