在嵌套 for 循环中将内部迭代器设置为外部迭代器 [ j=i ] 有什么作用?

What does setting the inner iterator to the outer iterator [ j=i ]do in nested for loops do?

我正在处理一个 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
    }
}

这有什么用?我不知道如何将它应用于任何事物。

显示的代码“图案”是一个三角形。打印内循环中的任何字符和外循环中的换行符,看看我的意思。

特别是在提到“数组”时,这种模式可用于“对每个条目和任何其他条目的所有对执行某些操作”(其中“1 和 2”将被视为与“2 和1",即顺序无关)。
为此,如果在任何先前的“each/other”组合中,“其他”条目已被外循环select编辑为“每个”条目。
在那种情况下,显然,您可以 select 外循环从头到尾通过数组的“每个条目”。但是你只需要 select 来自那些外循环还没有 selected 的“其他”条目。

所以在内部循环中,您 select 通过在外部循环的索引处开始循环来输入一个条目。

实际上我希望在外循环索引之后的第一个入口处启动内循环,但我认为您的代码示例不是那么精确。
严格来说,从外部循环索引本身开始就是“对任何条目和任何其他条目 或相同条目 的所有对执行某些操作”。 IE。它还会包括“1 and 1”和“2 and 2”,但仍然只有“1 and 2”而不是“2 and 1”。