如何使用a for each ... next循环循环2个数组?

时间:2016-07-15 11:10:11

标签: arrays for-loop vbscript foreach

我有一个简单的VBScript基本代码,使用 For Each ... Next Loop

<%
Dim cars(2)
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"

For Each x In cars
   response.write(x & "<br>")
Next
%>

输出:

Volvo
Saab
BMW

如果您有两个数组,我想请求如何循环的帮助。

例如:

Dim cars(2), fruits(2)

cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"

fruits(0)="Apple"
fruits(1)="Orange"
fruits(2)="Banana"

我期望的结果是:

Volvo Apple
Saab Orange
BMW Banana

还请考虑2数组与其数字相匹配(例如,沃尔沃和Apple都(0)

我试图在互联网上搜索这个,但没有这个主题。非常感谢答案。

1 个答案:

答案 0 :(得分:0)

使用For而不是For Each,并在两个数组中的相同索引处输出数组。您必须选择其中一个阵列才能使用UBound()关闭,只需使两个阵列具有相同数量的元素,否则最终会出现Sub Script out of Range错误。

Dim cars: cars = Array("Volvo", "Saab", "BMW")
Dim fruits: fruits = Array("Apple", "Orange", "Banana")

Dim i: i = 0

For i = 0 To UBound(cars)
  Call Response.Write(cars(i) & " " & fruits(i))
Next

输出:

Volvo Apple
Saab Orange
BMW Banana

另一种避免Sub Script out of Range错误问题的方法是使用多维数组。

Dim things(2, 1)
Dim i: i = 0

things(0, 0) = "Volvo"
things(0, 1) = "Apple"
things(1, 0) = "Saab"
things(1, 1) = "Orange"
things(2, 0) = "BMW"
things(2, 1) = "Banana"

For i = 0 To UBound(things, 1)
  Call Response.Write(things(x, 0) & " " & things(x, 1))
Next

输出:

Volvo Apple
Saab Orange
BMW Banana

另一种方法几乎是前两种方法的合并,它使用单维数组,但在其中嵌入单维数组。

Dim things(2)

things(0) = Array("Volvo", "Apple")
things(1) = Array("Saab", "Orange")
things(2) = Array("BMW", "Banana")

For Each thing In things
  Call Response.Write(thing(0) & " " & thing(1))
Next

输出:

Volvo Apple
Saab Orange
BMW Banana