The following function will convert a multi-dimensional VB safe-array into a multi-dimensional javascript array.
Try it out, Let me know if you can break it.
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;
}
}