JS使用自定義的方法初始化陣列

2020-07-16 10:05:06
在 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