在嵌套的for循环中,将内部迭代器设置为外部迭代器[j=i]做什么



我正在处理一个coderbyte挑战,在研究特定问题的解决方案时,我看到很多人使用嵌套for循环,这些循环的内部循环迭代器设置为外部循环迭代机。创建这种类型的模式:

i values         j values
when... i=0    |  j=0,j=1,j=2,j=3 etc.
i=1    |  j=1, j=2, j=3, j=4 etc.
i=2    |  j=2, j=3, j=4, j=5 etc.

一般概念。这是什么类型的模式,为什么它有用?

代码是

for(let i = 0; i < array.length; i++) {
for(let j = i; j < array.length; j++) {
//do something
}
}

这有什么用?我不知道它怎么能应用到任何事情上。

显示的代码"图案";是一个三角形。在内部循环中打印任意字符,在外部循环中打印换行符,看看我的意思。

特别是在提到";阵列";,这样的图案可以用于";对每个条目和任何OTHER条目的所有对做某事";(其中"1和2"将被认为与"2和1"是同一对,即顺序无关(
因此没有必要做";某事";到";每个";条目(由外循环选择(和一个";其他";条目(由内部循环选择(;其他";条目已经被选择为";每个";通过任何先前的"循环"中的外循环进入;每个/另一个";组合
在这种情况下,您可以选择;每个条目";很明显,从开始到结束的外循环通过arrayy。但您只需要选择一个";其他";外部循环尚未选择的条目。

因此,在内部循环中,通过在外部循环的索引处启动循环来选择一个条目。

实际上,我希望在外循环索引后的一个条目开始内循环,但我认为您的代码示例并不那么精确
严格地说,从外循环索引本身开始将是";对任何条目和任何其他条目或同一条目的所有对执行某些操作";。即它将另外包括";1和1〃;以及";2和2〃;,但仍然只有";1和2〃;而不是";2和1〃;。

最新更新