在 JavaScript 中,陣列在預設狀態下是不會初始化的。如果使用
[]
運算子建立一個新陣列,那麼此陣列將是空的。如果存取的是陣列中不存在的元素,則得到的值將是 undefined。因此,在 JavaScript 程式設計中應該時刻考慮這個問題:在嘗試讀取每個元素之前,都應該預先設定它的值。如果在設計中假設每個元素都從一個已知的值開始(如 0),那麼就必須預定義這個陣列。
範例1
下面為 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);
範例2
下面再為 Array 定義一個矩陣式二維陣列定義函數。
//引數m表示行數,n表示列數,initial表示初始值
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);
console.log(myMatrix[2][4]); //返回值0