JScript Array 物件

Array 物件是一個變數,它可以集結資料的相關部分。 它有唯一的號碼,稱為索引或註標 (Subscript),可以在陣列中參考資料的每個部分。 若要存取陣列中的資料,您可以使用索引運算子 "[]" 來結合陣列識別項和索引,例如,theMonths[0]。

建立陣列

若要建立新的陣列,請使用 new 運算子和 Array 建構函式。 這個範例先使用陣列建構函式來建構長度為 12 的陣列, 然後才將資料輸入陣列。

var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";

當您使用 Array 關鍵字建立陣列時,JScript 會包含 length 屬性,該屬性會記錄項目的數目。 如果您沒有指定一個數字,則長度會設定為零,而且陣列沒有元素。 如果您指定一個數字,則長度就會設定為該數字。 如果您指定一個以上的參數,則這些參數會被當做陣列中的元素來使用。 此外,參數的數目會指定給 length 屬性,如以下範例所示,這和上述範例是相同的。

var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

陣列常值提供另一個在陣列中輸入資料的技術。 如需詳細資訊,請參閱陣列資料

Array 物件可以儲存「疏鬆」陣列。 因此,如果陣列有三個編號為 0、1 和 2 的元素,則可存有元素 50 而不需要元素 3 到 49 的存在。 您將元素加入至 Array 物件時,JScript 會自動變更 length 屬性値。 JScript 中的陣列索引永遠會從 0 開始,而不會從 1 開始,所以 length 屬性一定會比陣列中最大的索引還大。

使用陣列的 expando 屬性

陣列物件和其他 JScript Object 物件架構的物件一樣,支援 expando 屬性。 expando 屬性是新增屬性,您可以在陣列中像處理陣列索引一樣,動態加入及刪除它。 但是,陣列索引必須是整數,而 expando 屬性是字串。 此外,加入或刪除 expando 屬性並不會變更 length 屬性。

例如:

// Initialize an array with three elements.
var myArray = new Array("Hello", 42, new Date(2000,1,1));
print(myArray.length); // Prints 3.
// Add some expando properties. They will not change the length.
myArray.expando = "JScript";
myArray["another Expando"] = "Windows";
print(myArray.length); // Still prints 3.

具型別陣列

另外一個建立上述 theMonths 陣列的較快方式是建立一個型別 (原生) 陣列,也就是這個案例中的字串陣列:

var theMonths : String[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

具型別陣列的元素存取速度,可以比 JScript 陣列物件中的元素存取速度快。 具型別陣列與其他 .NET Framework 語言的陣列相容,並協助提供型別安全 (Type Safety)。

JScript Arrays 物件非常靈活,很適用於清單、佇列、堆疊等,但若要儲存大小固定的同型別元素,原生陣列就更為適合。 除非需要 Array 物件的特殊功能 (動態調整大小等),否則通常應該使用具型別陣列。

所有非解構式的 JScript Array 方法 (這些方法不變更長度) 都可以在具型別陣列上呼叫。

請參閱

參考

Array 物件

其他資源

內建物件