2017-09-20 2 views
0

배열을 반복하고 각 항목을 다른 모든 항목에 할당하려고합니다. 현재 console.log (i, j)에 실제로 수행되지만 내 코드는 다르게 작동하지 않습니다. 콘솔에서는 볼 수 있습니다 :각 항목에 대한 모든 배열 항목을 반복합니다.

  • 1,1
  • 1, 2
  • 1,3
  • ... 등 ...
  • 19,18
  • (19, 19)

I 믿어 문제는 anchorConnectors를 [내가 J를 *] 인덱스에서 배열을 만드는 생성된다는 것이다 연속적이지 않은, 나는 생각하지 않는다. 어쩌면 나는 다른 것을 놓치고 있을지 모른다. 사전에 도움을 주신 모든 분들께 감사드립니다. 진심으로 감사드립니다.

var anchorPoints = []; 
var anchorConnectors = []; 
var anchorPointAmount = 20; 
var xvals = []; 
var yvals = []; 
const cenX = window.innerWidth/2; 
const cenY = window.innerHeight/2; 

function setup() { 
    createCanvas(window.innerWidth, window.innerHeight); 
    frameRate(60); 
    for (i = 0; i < anchorPointAmount; i++) { 
     xvals.push(random(0, window.innerWidth)); 
     yvals.push(random(0, window.innerHeight)); 
     anchorPoints[i] = new AnchorPoint(xvals[i], yvals[i]); 
     for (j = 0; j < anchorPointAmount; j++) { 
      console.log(i, j) 
      anchorConnectors[j * i] = new AnchorConnector(xvals[i], yvals[i], xvals[j * 2], yvals[j * 2]); 
     } 
    } 
    console.log(xvals); 
    console.log(yvals); 
} 
+1

u r anchorConnectors에 임의의 인덱스를 할당합니다. 따라서 0 * 1 (j x i) = 0과 0 * 2 = 0입니다. 따라서 두 번째 반복에서 0 번째 인덱스 값을 덮어 씁니다. 아마 당신이 2 차원 배열 - anchorConnectors [i] [j]가 아니라 anchorConnectors [i * j]가 필요하다고 생각합니다. – user1428716

답변

0

문제는 배열 값이 연속적이지 않다는 것이 아닙니다. 그건 전혀 중요하지 않습니다.

은 당신의 논리에 대해 자세히 살펴 :

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

지금, 몇 가지 예를 값으로 머리에이를 통해 실행. anchorPointAmount3이라고 가정 해 보겠습니다. 귀하의 루프 반복은 다음과 같이 :

  • i=0, j=0, j*i=0
  • i=0, j=1, j*i=0
  • i=0, j=2, j*i=0 (당신이 뭔가에 인덱스 0를 할당) (당신이 뭔가에 인덱스 0를 할당) (색인에 0을 지정하십시오.)
  • i=1, j=0, j*i=0
  • i=1, j=1, j*i=1 (당신이 뭔가에 인덱스 1를 할당)
  • i=1, j=2, j*i=2 (당신이 뭔가에 인덱스 2를 할당)
  • i=2, j=0, j*i=0 ((당신이 뭔가에 인덱스 0를 할당) 인덱스 0을 할당합니다.
  • i=2, j=1, j*i=2 (사용자가 인덱스을 할당합니다.
  • i=2, j=2, j*i=4이 (당신이 간단하지 무엇 인 배의 무리는, 이러한 인덱스에 어떤 값이었다 덮어 쓰는 것, 즉

) 뭔가 인덱스 4를 할당) 뭔가 (3210) 너는하고 싶어.

2D 배열을 찾고 계실 것입니다. Google은 친구이지만 기본적인 내용은 다음과 같습니다.

for (i = 0; i < anchorPointAmount; i++) { 
    for (j = 0; j < anchorPointAmount; j++) { 
    anchorConnectors[j][i] = // something 
    } 
} 
관련 문제