递增计数器一次,直到值大于if语句(Javascript)

递增计数器一次,直到值大于if语句(Javascript),javascript,if-statement,Javascript,If Statement,我有以下代码: if (step < 1) { accSteps.push(parseInt(step)); } for (i = 0; i < accSteps.length; i++) { zOutput++; document.getElementById("zVal").innerHTML = zOutput; } if(步骤

我有以下代码:

if (step < 1) {
    accSteps.push(parseInt(step));
}

for (i = 0; i < accSteps.length; i++) { 
    zOutput++;
    document.getElementById("zVal").innerHTML = zOutput;
}
if(步骤<1){
accSteps.push(parseInt(step));
}
对于(i=0;i

step
变量是mbed加速计的z坐标,用于计算步数。当前,当z坐标小于1时(即已进行步进),它将继续向计数器添加步进,直到z坐标等于或大于1。如何在整个持续时间内仅增加1,直到z坐标再次为1或更大?

只需在for循环中添加该条件:

if (step < 1) {
        accSteps.push(parseInt(step));
    }
    for (i = 0; i < accSteps.length && step < 1; i++) { 
        zOutput++;
        document.getElementById("zVal").innerHTML = zOutput;
}
if(步骤<1){
accSteps.push(parseInt(step));
}
对于(i=0;i
您需要为此设置一个标志

// Put this flag somewhere only executed once
var hasRegisteredStep = false;

if (step < 1 && hasRegisteredStep === false) {
    accSteps.push(parseInt(step));
    hasRegisteredStep = true;
} else if(step > 0) {
   hasRegisteredStep = false; // Reset the flag if greater than 0
}

for (i = 0; i < accSteps.length; i++) { 
    zOutput++;
    document.getElementById("zVal").innerHTML = zOutput;
}
//将此标志放在某个地方,只执行一次
var hasRegisteredStep=false;
如果(步骤<1&&hasRegisteredStep===false){
accSteps.push(parseInt(step));
hasRegisteredStep=true;
}否则,如果(步骤>0){
hasRegisteredStep=false;//如果大于0,则重置标志
}
对于(i=0;i
也许我没有把问题说清楚,这仍然与我上面的代码完全相同。而不是在步骤<1时不断向计数器添加1,我希望它只添加1一次,直到步骤=>1。@Djoni我恐怕还有点不清楚。你能举例说明吗?太好了!非常感谢。