(JS) 如何让 for 循环倒序执行

4

这段代码现在将 1 变成了 4。如何让它将 4 变成 1(从最后一个到第一个)?

var nb = 4;
var first = ' active';
if (nb > 1) {
    for (var i = 1; i <= nb; i++) {
        page  = page+'<span class="to-step-nb'+first+'">'+0+String(i)+'</span>';
        first = '';
    }
}

1
你的代码缺少一个 } - Andy
有很多种方法可以反向循环,我相信你可以通过谷歌搜索比写问题更快地找到答案,但是这里是我最喜欢的反向循环方式:for(var i=len;i-->1;) { .. } - Jite
2个回答

8
  1. nb should be number not string
  2. You're missing } at the end
  3. Use the condition

    for (var i = nb; i > 0; i--)
    

    to reverse the loop.

  4. String(i) is not required

  5. first is set to empty string, after first iteration, so now, you'll have last item active

  6. if (nb > 1), is not required, as if the condition fails, for will not execute

  7. You can use Shorthand for a = a + .. as a += ..

代码:

var nb = 4;
var first = ' active';

for (var i = nb; i > 0; i--) {
    page += '<span class="to-step-nb' + first + '">' + 0 + i + '</span>';
    first = '';
}

问题..现在它认为4是第一个并将+first+添加到类中,我如何使1成为第一个,以便1将获得+first+类? - mamady
在循环中使用if语句来检查并添加。 - Tushar
请您能否以我没有 JavaScript 知识的方式向我展示一下呢?(因为我确实不懂!) - mamady
我尝试了 for (var i = nb; i > 0; i--) { if (i = 1) { first = ''; } } 但它没有起作用。 - mamady

0
for (var i = nb; i >= 1; i--) {
  // do something
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接