我正在尝试在vbScript中迭代不同varTypes的数组,但没有成功。
注意:我说的是一个单一尺寸的数组,而不是一个vbScript多维数组。
我可以按如下方式成功创建测试数组:
Dim aArray : aArray = array("A", "B", array(1,2,3,4), "D", array("have", "a", "happy", "holiday", "!"), 1, "last item")
如您所见,主数组包含不同类型的项,一些字符串,一些整数和一些数组。然后,当循环时,一切顺利,直到迭代到包含另一个数组的数组项。
当我来到这一部分时,我需要知道该怎么做:
If typeName(aArray(i)) = "Variant()" Then
这是迭代和打印数组的完整函数:
For i = 0 to uBound(aArray)
If typeName(aArray(i)) = "Variant()" Then
'array item is another array e.g. vbScript typeName variant()
response.write "<tr><td>aArray(" & i & ")</td><td><table class=""debugVarsTbl""><tr><th>Value</th><th>typeName()</th></tr><tr><td>[Array()]</td><td>" & typeName(aArray(i)) & "</td></tr></table></td></tr>"
Else
'item is a standard string, integer, boolean, date, etc.
response.write "<tr><td>aArray(" & i & ")</td><td>" & aArray(i) & " (" & typeName(aArray(i)) & ")</td></tr>"
End If
Next
我基本上需要知道如何访问vbScript typeName = Variant()的主数组项。
先谢谢你,节日快乐, CBWDEV
答案 0 :(得分:1)
If typeName(aArray(i)) = "Variant()" Then
应该是
If typeName(aArray(i)) = "Variant" Then
如果输出具有公共代码,则最好使用开关来计算每种类型需要更改的内容。
答案 1 :(得分:1)
感谢大家的帮助和正确方向的指示。我找到了解决方案。这是我用于调试数组的例程:
Sub debugArray(byVal aArray)
For i = 0 to uBound(aArray)
If typeName(aArray(i)) = "Variant()" Then
'array item is another array e.g. vbScript typeName variant()
response.write "<tr><td>aArray(" & i & ")</td><td><table class=""debugVarsTbl""><tr><th>Value</th><th>typeName()</th></tr><tr><td>"
debugArray aArray(i)
response.write "</td><td>" & typeName(aArray(i)) & "</td></tr></table></td></tr>"
Else
'item is a standard string, integer, boolean, date, etc.
response.write "<tr><td>aArray(" & i & ")</td><td>" & aArray(i) & " (" & typeName(aArray(i)) & ")</td></tr>"
End If
Next
End Sub