javascript - 为什么这个循环不会产生我想要的结果?

标签 javascript jquery coffeescript

期望的结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

我的循环:

arr = []
n = 0; b = 0
while b < 2
  while n < 12
    arr.push n
    n++
  b++
return arr

实际结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

最佳答案

在内循环中完成后,将n的值重新初始化为0:

arr = []
n = 0; b = 0
while b < 2
  while n < 12
    arr.push n
    n++
  n = 0         // <------ Added this
  b++
return arr

这样,每个外部迭代都有一个"new"值 n

尽管如此,我得到的值是 0 到 11,而不是你想的 1 到 12。所以我会把它修改成这样(用真正的 JS):

function test() {
    var arr = [];
    var n = 1;
    var b = 0;
    while (b < 2) {
        while (n <= 12) {
            arr.push(n);
            n++;
        }
        n = 1;
        b++;
    }
    return arr;
}

但正如@Blender 所指出的,因为您实际上只是在模拟一个for 循环,所以使用一个!

function test2() {
    var arr = [];
    for (var b = 0; b < 2; b++) {
        for (var n = 1; n <= 12; n++) {
            arr.push(n);
        }
    }
    return arr;
}

关于javascript - 为什么这个循环不会产生我想要的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780365/

相关文章:

javascript - 使用 jQuery 迭代 JSON 对象

javascript - 下划线和 Mongoose : Use document as outer function's return value

coffeescript - COFFEE SCRIPT 的正确缩进?

JavaScript:字符串匹配后返回 anchor 标记

javascript - Canvas/JS 存储矢量/位图对象

jquery - Microsoft Edge 和使用 jQuery 排序

javascript - 自定义 url 时重新加载页面

javascript - Highcharts 导入在 Django 中正确加载 - Python

jquery:无法获取div的 "value"属性

javascript - 需要文件夹列表中的所有文件,而不需要在JS中单独添加它们