2011-12-30 5 views
0

反復関数の正しい構文について質問があります。 1つのマスターアレイを他のアレイの大きなセット(180+)と比較したいと思います。比較される大規模な配列のセットは、体系的に指定されます(scorespec1、scorespec2、scorespec3 ...)。それぞれの比較は、1対1ではなく、アルゴリズムを介して行われ、結果は後で照会するために体系的に命名された別の配列セットに格納されます。私はまだアルゴリズムをすぐに得ることを心配していません。私は私の配列を反復処理するための正しい構文が不明です。例えば、これは私が試したが、作業を取得するために失敗した構文構造の一つである:1つの配列と多くの他の体系的に名前を付けられた配列との比較を反復するための構文

for (i=01;i=186;i++){ 
    if (scorespec+(i)[04]=unknownspec[16]){ 
    resultarray+(i)[01]=True; 
    else 
    resultarray+(i)[01]=False;}} 

ここでの私の主な問題は、私は私のためにカウンタ変数を含めるように構文を構築する方法がわからないです変数名に-loopを付けます。私は上に示したものに加えて、さまざまな構文を試しましたが、正しく動作しないようです。私はどのような構文を使用する必要がありますか?

答えて

0

for文の三つの部分があります

for ([initialExpression]; [condition]; [incrementExpression]) { 
    // The statement (i.e. what will happen on each iteration) 
} 

配列を反復処理するには、我々は繰り返すように、その長さ方向に移動するアレイとカウンターの長さを必要とします。これは、通常のパターンです:

var myArray = ['foo', 'bar', 'far']; //... 

for (var i = 0; i < myArray.length; i++) { 
    myArray[i]; // <- this is the current array item 
} 

それはそうのような配列の長さをキャッシュするために賢明です:

また
for (var i = 0, l = myArray.length; i < l; i++) { 
    myArray[i]; // <- this is the current array item 
} 

、FYI、真と偽のあなたの真偽値は、大文字にするべきではありません。

+0

感謝を大文字しかし、私は配列内の項目を反復しようとしていませんが、同様の名前の配列セット(scaorespec1、scorespec2、scorespec3 ...)ありがとうございます。 – WyoBuckeye

0

あなたはウィンドウオブジェクト使用してそれらにアクセスすることができ、グローバルスコープであなたの配列を宣言していた場合:

var scorespec1 = "123"; 
var scorespec2 = "456"; 

for (var i = 1; i < 3; i++){ 
    alert(window['scorespec' + i]); 
} 

それとも、遅いと悪のevalを使用することができた:先端のための

var scorespec1 = "123"; 
var scorespec2 = "456"; 

for (var i = 1; i < 3; i++){ 
    var scorespec; 
    eval("scorespec = scorespec" + i); 
    alert(scorespec); 
} 
+0

しかし、変数が配列の場合はどうですか?たとえば、私はこの構文を使用する必要がありますか? (ウィンドウ['scorespec' + i [01]] – WyoBuckeye

+0

ウィンドウ['scorespec' + i] [1] – jantimon

関連する問題