在JavaScript中,數組在默認狀態下是不會初始化的。如果使用運算符創建一個新數組,那麼此數組將是空的。如果訪問的是數組中不存在的元素,則得到的值將是undefined。因此,在JavaScript程序設計中應該時刻考慮這個問題:在嘗試讀取每個元素之前,都應該預先設置它的值。但是,如果在設計中假設每個元素都從一個已知的值開始(如0),那麼就必須預定義這個數組。我們也可以為JavaScript自定義一個靜態函數:
Array.dim=function(dimension,initial){
var a=,i;
for(i=0;i<dimension;i+=1){
a[i]=initial;
}
return a;
};
借助這個工具函數,可以輕鬆地創建一個初始化數組。例如,創建一個包含100個0的數組:
var myArray=Array.dim(100,0);
JavaScript沒有多維數組,但是它支持元素為數組的數組。
var matrix=[
[0,1,2],
[3,4,5],
[6,7,8]
];
matrix[2][1]//7
為了自動化創建一個二維數組或一個元素為數組的數組,我們不妨這樣做:
for(i=0;i<n;i+=1){
my_array[i]=;
}
注意,Array.dim(n,)在這裡不能工作,如果使用它,每個元素都指向同一個數組的引用,那是非常糟糕的。
一個空矩陣的每個單元將擁有一個初始值undefined。如果希望它們有不同的初始值,必須明確地設置它們的值。因此,我們可以單獨為Array定義一個矩陣數組定義函數。
Array.matrix=function(m,n,initial){
var a,i,j,mat=;
for(i=0;i<m;i+=1){
a=;
for(j=0;j<n;j+=1){
a[j]=initial;
}
mat[i]=a;
}
return mat;
};
下面就利用這個矩陣數組定義函數構建一個5×5的矩陣數組,且每個元素的初始值為0。
var myMatrix=Array.matrix(5,5,0);
document.writeln(myMatrix[2][4]);//0