2017-01-19 4 views
0

I次のコードを持っている:値がより大きくなるまで、一度カウンタをインクリメントif文(Javascriptの)

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

for (i = 0; i < accSteps.length; i++) { 
    zOutput++; 
    document.getElementById("zVal").innerHTML = zOutput; 
} 

step変数は、ステップ数をカウントするMBED加速度計からの座標zとします。現在、z座標が< 1(すなわち、ステップが作成されている)である場合、z座標が1以上になるまでカウンタにステップを追加し続けます。もう一度Z座標が1以上になるまで、どのくらい全期間にわたってちょうど1だけ増分するのですか?

答えて

0

あなたはそのためのフラグを設定する必要があります。

// 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; 
} 
+0

完璧!ありがとうございました。 – Djoni

0

ループのためにちょうどその条件を追加:

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

おそらく私は質問を十分にはっきりさせていないかもしれませんが、これは上記のコードとまったく同じです。ステップ1の間にカウンターに常に1を追加するのではなく、ステップ=> 1になるまで1回だけ追加します。 – Djoni

+0

@Djoniまだわかりません。あなたは例を用いて明確にできますか? – YoTengoUnLCD

関連する問題