javascript - JavaScript 中可以嵌套的层数有限制吗?

标签 javascript for-loop nested-loops limits cyclomatic-complexity

假设您有一个非常复杂的算法,需要数十个 for 循环。

JavaScript 对循环的嵌套深度有限制还是没有限制?

深层嵌套 for 循环的最佳实践是什么?

我尝试在 MDN 上搜索但找不到我要找的东西

编辑

我正在查看是否有内置限制。例如,如果你有这样的东西

If ( a = 1, a < 3, a++) {
    if (b = 1; b < 3; b++) {
        ...
        if (cd = 1; cd < 3; cd++) 

这真的可能还是 JS 会抛出错误

编辑:这是您何时可能需要这个的理论示例

您想要查找数组中是否有任何 500 个数字的总和等于另一个数字。您需要大约 500 次循环才能将数字添加到组合数组,然后过滤它们以找到它们相对于第三个数字的总和。

宇宙中有足够的空间来存储那么多数据吗?

最佳答案

规范没有限制。由于内存/堆栈溢出,可能在任何实现中都会有限制...

例如,这工作正常:

var s = 0;
var is = new Array(11);

for(is[0] = 0; is[0] < 2; is[0]++) {
  for(is[1] = 0; is[1] < 2; is[1]++) {
    for(is[2] = 0; is[2] < 2; is[2]++) {
      for(is[3] = 0; is[3] < 2; is[3]++) {
        for(is[4] = 0; is[4] < 2; is[4]++) {
          for(is[5] = 0; is[5] < 2; is[5]++) {
            for(is[6] = 0; is[6] < 2; is[6]++) {
              for(is[7] = 0; is[7] < 2; is[7]++) {
                for(is[8] = 0; is[8] < 2; is[8]++) {
                  for(is[9] = 0; is[9] < 2; is[9]++) {
                    for(is[10] = 0; is[10] < 2; is[10]++) {
                      s++;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

document.write(s);

关于javascript - JavaScript 中可以嵌套的层数有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35218377/

相关文章:

javascript - 如何使用 firestore TIMESTAMP 在 JavaScript 中创建时间戳

python - Python 中的列表迭代

Python - 从嵌套循环中只打印一次

javascript - 使用 Spark View 引擎的 View 数据调用参数包含引号的 javascript 函数时出现问题

javascript - 输入按钮的 key

javascript - 我的 html 未呈现有什么原因吗?

batch-file - Windows 批处理中缺少操作数错误

c - for循环的matlab代码

python - 使用用户输入打破嵌套循环

java - 按大小顺序打印给定字符串的所有子字符串