javascript for 循环未结束

javascript for loop not ending

我正在尝试在 javascript 中使用一个变量来指定增量的 for 循环。 以下函数使用 DIV 的先前值 (oldVal) 和它已更改为 (newVal) 的值来更改另一个 DIV.

中显示的总数 (curtot)
 function spinctrltotaling(sender, newVal) {
        var curtot = Number(document.getElementById("totaling").innerHTML);
        console.log(curtot);
        var transtot = 0;
        var ld = "";
        var oldVal = sender.GetOldValue();
        console.log(oldVal);
        if (newVal - oldVal >= 0) {
            ld = "i=i+1";
        } else {
            ld = "i=i-1";
        }
        ;
        console.log(ld);
        for (i = oldVal; i <= newVal; ld) {
            console.log(i);
            if (i <= 0 & ld == "i=i+1") {
                transtot = transtot - (i + 1);
                console.log("i <= 0");
            } else if (i < 0 & ld == "i=i+1") {
                transtot = transtot + i;
                console.log("i < 0");
            } else if (i >= 0 & ld == "i=i+1") {
                transtot = transtot - (i - 1);
                console.log("i >= 0");
            } else {
                transtot = transtot + i;
                console.log("else");
            }
        }
        ;
        if (curtot - transtot < 0) {
            sender.SetCurrentValue = oldVal;
        } else {
            document.getElementById("totaling").innerHTML = transtot;
            document.getElementById("debuging").innerHTML = "curtot=" + curtot
                    + "    oldVal=" + oldVal + "    newVal=" + newVal
                    + "    transtot=" + transtot;
        }
        ;
}

控制台结果:

0
0
"i=i+1"
0
"i <= 0"
1
"i >= 0"

有两个问题:

  1. IF ELSE 在控制台中显示了四种可能结果中的三种,而不是我预期的结果。
  2. 循环没有结束,即使它应该只循环一次。

我知道我犯了一个愚蠢的错误,但就是看不出来。

1) 请按如下所述解决问题 2,然后重新进行测试...:-)

2) 循环没有结束的原因是你没有增加循环变量i...

for (i = oldVal; i <= newVal; ld) {

大概应该是:

for (i = oldVal; i <= newVal; i++) {

您需要知道是要在 for 循环中递增还是递减迭代器。然后,你需要这样做。所以,像这样:

if (newVal - oldVal >= 0) {
   for (i = oldVal; i <= newVal; i++) {
        ...
   }
} else { 
     for (i = oldVal; i >= newVal; i--) {
        ...
      }
 };

不用纠结"ld"。