我有一个简单的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))
我试图在互联网上搜索这个,但没有这个主题。非常感谢答案。
答案 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