0

これは単純な問題だと思いますが、どこが間違っていたのかわかりません。私は3つのアリーを持っています

名前:

Alex, John, Sam

趣味

Baseball, Hockey, Golf

Sudbury, Toronto, Ottawa

次のコードを設定しましたが、2番目と3番目の配列は変更されません。

for(var n=0;n<names.length;n++){  
var h=0;t<hobby.length;h++;
var c=0;c<city.length;c++;


alert (names[n]);
alert (hobby[h]);
alert (city[c]);
}

順番に循環するように設定するにはどうすればよいですか?

4

3 に答える 3

1

他のことをする前に、それらを適切なデータ構造にする必要があります。

var people = [];

for( var i = 0; i < names.length; ++i ){
    people.push({
        name: names[i],
        hobby: hobby[i],
        city: city[i]
    });
}

それで:

for( var i = 0; i < people.length; ++i ) {
    var person = people[i];
    alert( person.name );
    alert( person.hobby );
    alert( person.city );
}
于 2012-11-14T16:37:36.897 に答える
0
var h=0;t<hobby.length;h++;
var c=0;c<city.length;c++;

これらの2行は、コードにほとんど影響を与えません。各反復で、両方の変数がに設定され0、1ずつ増加します。だから、alert()sに来るとき、彼らは常に1です。

常に同じインデックスを持つアイテムが相互に関連していると仮定すると、これによりそれぞれのセットが得られます。

for(var n=0;n<names.length;n++){  
  alert (names[n]);
  alert (hobby[n]);
  alert (city[n]);
}
于 2012-11-14T16:38:03.853 に答える
0

それらがすべて同じ長さであり、欠落しているエントリがないと仮定すると、次のことができます。

for(var n=0;n<names.length && n<hobby.length && n<city.length;n++){
  alert (names[n]);
  alert (hobby[n]);
  alert (city[n]);
}
于 2012-11-14T16:39:07.547 に答える