JavaScript 多维数组类
作者:yaya | 时间:2009年10月7日 | 分类 学海无涯 | 标签 javascript 数组 类 | 0回复
我们知道javascript 的多维数组是通过模拟实现的,比如二维数组a[3][2]的实现:
二维数组a[3][2]
-
var a = new Array(3)
-
a[0] = new Array(2);
-
a[1] = new Array(2);
-
a[2] = new Array(2);
当然,写出 [ ] 的形式也是一样的意思。
而写成var a = new Array(3,2)是不行的。
可以我们总想事情变得简单。所以写了MyArray。如下:
MyArray
-
var MyArray = function(){
-
var args = arguments;
-
this.array={
-
toArray:function(){
-
var tempArray;
-
var d= args.length-1;
-
var ts='';
-
tempArray=new Array(args[0]);
-
var vtemp = new Array(d);
-
for (var f=0;f<d;f++){
-
ts+='for(vtemp['+f+']=0;vtemp['+f+']<'+args[f]+';vtemp['+f+']++)';
-
ts+='{';
-
var parm='tempArray';
-
for (var p=0;p<=f;p++) parm+='[vtemp['+p+']]';
-
ts+=parm+'=new Array('+args[(f+1)]+');'
-
}
-
for (var i=0;i<d;i++) ts+='}';
-
eval(ts);
-
return tempArray;
-
}
-
}
-
return this.array.toArray();
-
}
然后就可以直接var myArray = MyArray(2,3,2);
调用时候就可以直接写出myArray[x][y][z]即可
调用的时候如下:
调用
-
var myArray = MyArray(2,3,2);
-
for (var x=0;x<2;x++)
-
for (var y=0;y<3;y++)
-
for (var z=0;z<2;z++)
-
myArray[x][y][z]=x+' '+y+' '+z;
-
-
for (var x=0;x<2;x++)
-
for (var y=0;y<3;y++)
-
for (var z=0;z<2;z++)
-
alert(myArray[x][y][z]);
暂时就一个toArray方法。myArray类型就是Array。而其他的length,sort等都还未写。慢慢加上好了。
好了。就写到这里啦。
