天天看點

JS程式設計建議——53:小心使用數組次元

建議53:小心使用數組次元

在JavaScript中,數組在預設狀态下是不會初始化的。如果使用[]運算符建立一個新數組,那麼此數組将是空的。如果通路的是數組中不存在的元素,則得到的值将是undefined。是以,在JavaScript程式設計中應該時刻考慮這個問題:在嘗試讀取每個元素之前,都應該預先設定它的值。但是,如果在設計中假設每個元素都從一個已知的值開始(如0),那麼就必須預定義這個數組。我們也可以為JavaScript自定義一個靜态函數:

Array.dim = function(dimension, initial) {

};

借助這個工具函數,可以輕松地建立一個初始化數組。例如,建立一個包含100個0的數組:

var myArray = Array.dim(100, 0);

JavaScript沒有多元數組,但是它支援元素為數組的數組。

var matrix = [

];

matrix2 //7

為了自動化建立一個二維數組或一個元素為數組的數組,我們不妨這樣做:

for( i = 0; i < n; i += 1) {

}

注意,Array.dim(n, [])在這裡不能工作,如果使用它,每個元素都指向同一個數組的引用,那是非常糟糕的。

一個空矩陣的每個單元将擁有一個初始值undefined。如果希望它們有不同的初始值,必須明确地設定它們的值。是以,我們可以單獨為Array定義一個矩陣數組定義函數。

Array.matrix = function(m, n, initial) {

下面就利用這個矩陣數組定義函數建構一個5×5的矩陣數組,且每個元素的初始值為0。

var myMatrix = Array.matrix(5, 5, 0);

document.writeln(myMatrix2); // 0

繼續閱讀