微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在嵌套for循环中将内部迭代器设置为外部迭代器[j = i]会做什么?

我正在研究一个编码字节挑战,并且在研究解决特定问题的方法时,我看到很多人使用嵌套的for循环,这些循环的内部循环的迭代器设置为外部循环迭代器。创建这种模式:

      i values         j values
when... i=0    |  j=0,j=1,j=2,j=3 etc.
        i=1    |  j=1,j=3,j=4 etc.
        i=2    |  j=2,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”对相同) ,即与订单无关)。
为此,如果已经选择“其他”条目作为“每个”条目(由外部循环选择)和“其他”条目(由内部循环选择),则无需对它进行“某些操作”。外循环在任何先前的“每个/其他”组合中通过“每个”条目。
在那种情况下,很明显,您可以通过外循环从头到尾通过数组选择一个“每个条目”。但是,您只需要从尚未选择外部循环的条目中选择一个“其他”条目即可。

因此在内部循环中,您可以通过在外部循环的索引处开始循环来选择一个条目。

实际上,我希望在外循环索引之后的第一个入口处开始内循环,但是我假设您的代码示例不够精确。
严格说来,从外部循环索引本身开始就是“对任何条目的所有对以及任何其他条目或同一条目做某事”。即它将另外包括“ 1和1”以及“ 2和2”,但仍然仅包括“ 1和2”,而不是“ 2和1”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。