在 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);
下面再为 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