javascript - 超过n次限制后从0重新开始计数

标签 javascript

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

我尝试过 iffor 循环,但无法达到我想要的效果。

//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...) 的倍数。

最佳答案

payload[2]除以80:

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];
    }
}

您还可以将无条件语句(result.Count 的赋值)移出 if 语句,在这种情况下,您甚至不需要 >if(模数将使小于 80 的值保持不变):

if (payload[0] == 33) {
    result.PayloadTtype = 'Vehicle Count';
    payload[2] %= 80;
    result.Count = payload[2];
}

如果你真的想让事情变得紧凑,你甚至可以这样做(尽管我认为这会损害可读性):

if (payload[0] == 33) {
    result.PayloadTtype = 'Vehicle Count';
    result.Count = payload[2] %= 80;
}

关于javascript - 超过n次限制后从0重新开始计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57657996/

相关文章:

javascript - 我无法让所有的 Javascript 计算一起工作以获得总计

javascript - 获取具有特定属性的 xml 文本

javascript - 如何在 Javascript 中加载页面并对其进行 MD5 哈希以确保它是我们要查找的页面

javascript - 使用 QUnit 对 AJAX 请求进行单元测试

javascript - 是否可以检测何时设置内联样式属性?

javascript - 在本地主机上运行时,Microsoft Edge 中的 Window.opener 未定义

javascript - 为什么模板事件中的 findOne 会导致调用堆栈大小错误?

javascript - 使用 RegExp 和使用 javascript getAttribute 的测试

javascript - 使用 angularjs 解析 JSON

javascript - 将方法从服务调用到 Controller 中