这是一个非常基本的Javascript问题。看,我有一个像这样开始的for循环
for (i=0;i<=negativeorpositivenumber;i++) {
顾名思义,positiveornegativenumber变量可以包含正数或负数。结果,如果所述变量为正,则for循环起作用。如果它是负数,则循环立即退出,因为我已经大于negativeorpositivenumber。
有没有办法,不使用两个for循环(一个用于负数,一个用于正数),以便双向工作?如果变量negativeorpositivenumber为负数,那么将i&lt; =变为i&gt; =和i ++变为i--
我认为这个问题也可能适用于多种语言。
编辑:也许我应该更清楚地说明这一点。 我无法使用绝对值,因为i的值实际上需要倒计时。感谢所有有帮助并且使用Math.abs回答的人。答案 0 :(得分:2)
for (i=0;i<=Math.abs(negativeorpositivenumber);i++) {
var original = negativeorpositivenumber > 0 ? i : -i; // optional
答案 1 :(得分:0)
为什么不使用绝对值。
for(int i = 0; i < abs(positiveorneativenumber); i++)
{
//do stuff
}
答案 2 :(得分:0)
类似于上面的评论,但根据数字的符号,你可以像这样做一个while循环:
var sign = negativeorpositivenumber? negativeorpositivenumber <0?-1:1:0
while(i != 0){
i -= sign;
}
答案 3 :(得分:0)
要向任一方向循环,您可以先检查您要去的地方,以及界限是什么:
var dir = negativeorpositivenumber > 0 ? 1 : -1;
var min = negativeorpositivenumber > 0 ? 0 : negativeorpositivenumber;
var max = negativeorpositivenumber > 0 ? negativeorpositivenumber : 0;
for (var i = 0; i >= min && i <= max; i += dir) {
...
}