2017-09-20 22 views
0

配列全体を繰り返し処理し、各項目を他のすべての項目に割り当てようとしています。現在にあります。console.log(i、j)これは本当に行いますが、私のコードは別の方法では動作しません。コンソールでは、表示されます。各項目のすべての配列項目をループする

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

私は信じている問題は、それが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×i)= 0かつ0 * 2 = 0となる。したがって、2回の反復において、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=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(インデックスを割り当てます何かに3210)
  • i=2j=2j*i=4(あなたが何かにインデックス4を割り当てる)つまり

、あなたは、単に何をされていない、これらのインデックスにあったどのような値倍の束を上書きしていますあなたがしたい。

おそらくの2D配列があります。 Googleはあなたの友人ですが、基本は次のようになります:

for (i = 0; i < anchorPointAmount; i++) { 
    for (j = 0; j < anchorPointAmount; j++) { 
    anchorConnectors[j][i] = // something 
    } 
} 
関連する問題