下記のように変化していく値で、0を越えた時点で一度だけ処理するにはどうすれば良いでしょうか?
Math.sin(Math.PI + t)
・t += 0.02;

-0.021590975726093416
-0.021590975726093416
-0.021590975726093416
-0.021590975726093416
-0.021590975726093416
-0.0015926529164847303
-0.0015926529164847303
-0.0015926529164847303
-0.0015926529164847303
-0.0015926529164847303
0.018406306933055464
0.018406306933055464
0.018406306933055464
0.018406306933055464
0.018406306933055464
0.03839790450523747
0.03839790450523747
0.03839790450523747
0.03839790450523747
0.03839790450523747

現状コードのイメージ

target = Math.sin(Math.PI + t);
flg = true;
if((flg==true)&&( target < 0)){
  console.log(target);
  flg=false;
}else if((flg==false)&&(target > 0)){
  flg=true;
}
t += 0.02;

最終的にやりたいこと
・(0を越える度毎に、)0を越えた時点の値を1度だけ表示したい
・現状では、「if((flg==true)&&( target < 0)){」を満たす内容を全て出力してしまう

※ループ値は、マイナスからプラスへ変化したり、プラスからマイナスへ変化したりする予定