如何将VB脚本数组转换为JavaScript数组经典asp

时间:2011-12-09 05:07:38

标签: javascript asp-classic

经典的asp:

sub a

aryaa(0,0)=1
aryaa(0,1)=2

end

如何在脚本函数中调用此数组,以及如何将此vbscript数组转换为javascript数组。

请帮我解决这个问题,因为3天我一直在寻找这个。

感谢。

3 个答案:

答案 0 :(得分:4)

假设我的VBScript数组是aryATTPlans而不是下面的代码描述(VBScript数组到Javascript数组)

// this is client JS code
var aryATTPlans = new Array();  
var aryATTPlans = new Array(2); 
var i, j;
<%
' this is server VBS code
If IsArray(aryATTPlans) Then
    j=0
    For i = 0 to ubound(aryATTPlans)
        %>
        aryATTPlans[<%= i %>] = new Array(2);
        aryATTPlans[<%= i %>][<%= j %>] = <%= aryATTPlans(i, j) %>;
        <% 
    Next // i
End If 
%> 

答案 1 :(得分:2)

在Javascript中,您没有本机Matrix对象类型。但您可以使用Object或Array,例如:

<script type="text/javascript">
    var aryaa = [ [1, 2] ];
    // aryaa[0][0] = 1
    // aryaa[0][1] = 2
</script>

我希望你觉得这很有用。无论如何,请检查MDN documentation

答案 2 :(得分:2)

以下函数将多维VB安全数组转换为多维JavaScript数组。

function VBtoJSArray(vba) {

    var vbarray = new VBArray(vba);

    var d = vbarray.dimensions();

    var dims = [];
    var base = [];
    var params = [];

    for (var i=1; i <= d; i++) {
        dims.push(vbarray.ubound(i)-vbarray.lbound(i) + 1);
        base.push(vbarray.lbound(i));
        params.push(vbarray.lbound(i));
    }

    return convertArray(new Array(dims[0]), 0);

    function convertArray(ax, index) {

        for (var i=0; i < dims[index]; i++) {

            params[index] = i + base[index];

            if (index == dims.length-1) {

                ax[i] = VBArray.prototype.getItem.apply(vbarray, params);
            }
            else {

                ax[i] = new Array(dims[index+1]);
                convertArray(ax[i], index+1);
            }
        }
        return ax;
    }
}