我正在研究一个编码字节挑战,并且在研究解决特定问题的方法时,我看到很多人使用嵌套的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
}
}
这有什么用?我不知道如何将其应用于任何事物。
答案 0 :(得分:0)
所示的代码“模式”是一个三角形。在内部循环中打印任何字符,在外部循环中打印换行符,以了解我的意思。
特别是在提到“数组”时,这种模式可用于“对每个条目和所有其他条目的所有对进行某些操作”(其中“ 1和2”将被视为与“ 2和1”对相同) ,即与订单无关)。
为此,如果已经选择“其他”条目作为“每个”条目(由外部循环选择)和“其他”条目(由内部循环选择),则无需对它进行“某些操作”。外循环在任何先前的“每个/其他”组合中通过“每个”条目。
在那种情况下,很明显,您可以通过外循环从头到尾通过数组选择一个“每个条目”。但是,您只需要从尚未选择外部循环的条目中选择一个“其他”条目即可。
因此在内部循环中,您可以通过在外部循环的索引处开始循环来选择一个条目。
实际上,我希望在外循环索引之后的第一个入口处开始内循环,但是我假设您的代码示例不够精确。
严格说来,从外部循环索引本身开始就是“对任何条目的所有对以及任何其他条目或同一条目做某事”。即它将另外包括“ 1和1”以及“ 2和2”,但仍然仅包括“ 1和2”,而不是“ 2和1”。