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;}}

ここでの主な問題は、for ループの変数名にカウンター変数を含める構文を構造化する方法がわからないことです。上記に示したものに加えて、さまざまな構文を試しましたが、正しく動作しないようです。どの構文を使用すればよいですか?

4

2 に答える 2

0

for声明には次の 3 つの部分があります。

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
}

また、参考までに、true と false のブール値は大文字にしないでください。

于 2011-12-30T14:51:39.537 に答える
0

グローバル スコープで配列を宣言した場合は、window オブジェクトを使用して配列にアクセスできます。

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);
}
于 2011-12-30T14:52:23.633 に答える