0

我知道这只是一个简单的问题,但我不知道我哪里出错了。我有 3 个 arryas

名称:

Alex, John, Sam

爱好

Baseball, Hockey, Golf

城市

Sudbury, Toronto, Ottawa

我已经设置了以下代码,但是第二个和第三个数组没有改变。

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

假设它们的长度都相同,并且没有丢失条目,您可以:

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 回答
0
var h=0;t<hobby.length;h++;
var c=0;c<city.length;c++;

这两行对您的代码几乎没有任何作用。在每次迭代中,两个变量都设置为0,然后加一。因此,当来到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 回答