本文介绍JavaScript中定义和初始化数组的两种主要方式。第一种利用内置Array构造函数直接赋值或循环创建一维及二维数组;第二种针对早期浏览器兼容性,通过自定义initArray函数模拟数组行为,实现参数的自动赋值。
JavaScript数组定义与初始化概述
JavaScript中定义与初始化数组主要有两种常见方法。
一维数组的定义与初始化方法
首先介绍一维数组的定义方式。
第一种方法是通过Array构造函数进行初始化。
var _TheArray = new Array();//定义
_TheArray[0]="1";
_TheArray[1]="2";
_TheArray[2]="3";
//初始化
第二种方法则是直接给数组元素赋值。
例如:var _TheArray = new Array("1","2","3");//直接定义并初始化
二维数组的定义与初始化方法
接下来讨论二维数组的定义与初始化。
二维数组的第一种构建方式通常涉及嵌套循环或对象字面量。
var _TheArray = new Array(); //先声明一维
for(var i=0;i<10;i++){ //一维长度为10
TheArray[i]=new Array(); //在声明二维
for(var j=0;j<20;j++){ //二维长度为20
_TheArray[i][j]=1;
}
}
第二种方式则是直接通过字面量语法进行初始化。
例如:var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]];//直接定义并初始化
上述代码已在IE8环境下测试通过。
兼容旧环境的数组初始化方案
第二种主要方法适用于不支持原生数组特性的环境。
<script type="text/javascript">
var date=new Date();
function initArray(){
this.length=initArray.arguments.length;
for(var i=0;i<this.length;i++){
this[i]=initArray.arguments[i];
}
}
var d=new initArray(
'星期日',
'星期一',
'星期二',
'星期三',
'星期四',
'星期五',
'星期六'
);
//Firfox浏览器显示年是由getYear()获取当前年减去1900年
document.write((date.getYear()>1900?date.getYear():date.getYear()+1900)+"年");
document.write(date.getMonth()+1+"月");
document.write(date.getDate()+"日 ");
document.write(d[date.getDay()]);
</script>
由于早期JavaScript环境对数组支持有限,需采用以下代码来定义和初始化数组。\n\nfunction initArray(){ \n\nthis.length=initArray.arguments.length; \n\nfor(var i=0;i<this.length;i++){ \n\nthis[i]=initArray.arguments[i]; \n\n} \n}