2011-12-09 20 views
1

傳統的ASP:如何VB腳本數組轉換爲JavaScript數組傳統的ASP

sub a 

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

end 

如何調用該數組中的腳本功能,以及如何使這個VBScript中數組的JavaScript陣列。

請幫我解決這個問題,因爲3天我在找這個。

謝謝。

+2

您是否有任何可以發佈的代碼。你會得到一個更有意義的答案,然後 – griegs

+1

請發佈你試過的東西。或者至少發佈你的vbScript數組代碼。 –

+1

...並且你已經閱讀過javascript數組了嗎?一個地方開始:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array – mg1075

回答

4

假設MY 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 
%> 
+0

它的工作非常好,我用它。 :) –

2

在Javascript中,您沒有本機Matrix對象類型。但你可以使用對象或數組,如:

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

我希望你覺得這個有用。無論如何請檢查MDN documentation

1

下面的函數將多維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; 
    } 
} 
相關問題