1

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

4

2 回答 2

1
If typeName(aArray(i)) = "Variant()" Then

应该

If typeName(aArray(i)) = "Variant" Then

此外,如果输出具有通用代码,最好使用开关来确定每种类型需要更改的内容。

于 2012-12-25T15:28:34.337 回答
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
于 2012-12-26T12:28:53.680 回答