循环遍历每个项目的所有数组项

时间:2017-09-20 12:06:27

标签: javascript arrays loops p5.js

我正在尝试遍历数组并将每个项目分配给所有其他项目。目前在 console.log(i,j)上它确实这样做但我的代码不起作用。在控制台中,您将看到:

  • 1,1
  • 1,2
  • 1,3
  • ...等...
  • 19,18
  • 19,19

我认为问题在于它正在创建 anchorConnectors [i * j] 正在创建不连续的索引的数组,我认为这些数据不起作用。也许我错过了别的东西。感谢任何人提前提供任何帮助。我真诚地感激它。

ErrorDocument 404 "<h2>You Are Wrong!!!</h2><a href=/>Go Home</a>"

1 个答案:

答案 0 :(得分:0)

问题不在于数组值不是连续的。这根本不重要。

仔细看看你的逻辑:

for (i = 0; i < anchorPointAmount; i++) {
  for (j = 0; j < anchorPointAmount; j++) {
    anchorConnectors[j * i] = // something
  }
}

现在,通过一些示例值在脑海中运行这个。假设anchorPointAmount3。你的循环迭代看起来像这样:

  • i=0j=0j*i=0(您将索引0分配给某些内容)
  • i=0j=1j*i=0(您将索引0分配给某些内容)
  • i=0j=2j*i=0(您将索引0分配给某些内容)
  • i=1j=0j*i=0(您将索引0分配给某些内容)
  • i=1j=1j*i=1(您将索引1分配给某些内容)
  • i=1j=2j*i=2(您将索引2分配给某些内容)
  • i=2j=0j*i=0(您将索引0分配给某些内容)
  • i=2j=1j*i=2(您将索引2分配给某些内容)
  • i=2j=2j*i=4(您将索引4分配给某些内容)

换句话说,你只需要多次覆盖这些索引的任何值,这不是你想要做的。

您可能正在寻找 2D阵列。谷歌是你的朋友,但基本知识将是这样的:

for (i = 0; i < anchorPointAmount; i++) {
  for (j = 0; j < anchorPointAmount; j++) {
    anchorConnectors[j][i] = // something
  }
}
相关问题