如何在vbscript中遍历数组数组

时间:2012-12-25 15:19:44

标签: arrays multidimensional-array vbscript

我正在尝试在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

2 个答案:

答案 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