2012年5月8日星期二

TJS教學---array,陣列(1)

一個變數可以儲存一個值,如果有一百個值豈不是要宣告一百個變數,如果有一萬個值豈不是要宣告一萬個變數?>( ゚ω゚ s)

光是宣告豈不是已經要寫一萬行,我該怎麼辦,難道要複製貼上嗎?>( ゚ω゚ s)

(k ゚∀゚)<我們的確不可能為了宣告一萬個變數而寫一萬行,而且還為它們命名不同的名稱。

(k ゚∀゚)<我們當然有不用那麼麻煩的方法,就是使用陣列(Array),陣列是一組變數,它們擁有相同的名稱,宣告陣列的方式就像以下的範例。

var 陣列名稱=new Array();

跟之前宣告變數有很大的差別……>( ゚ω゚ s)

(k ゚∀゚)<這其實是建立了一個Array類別的物件,不過大家可以先理解成建立了一組變數,它們的名稱都是相同。

這陣列可以放多少個值?>( ゚ω゚ s)

(k ゚∀゚)<無論多少個也可以,吉里吉里裡的陣列是不需要宣告時決定陣列長度的。

聽起來好像不錯,不過到底如何使用,既然它們的名稱都一樣,到底我要如何識別它們?>( ゚ω゚ s)

(k ゚∀゚)<陣列中的元素都有自己的索引(index),索引值由0開始,留意並不是由1開始,使用時就像以下的方式。

陣列名稱[索引值]

我還不太懂得如何用陣列?>( ゚ω゚ s)

(k ゚∀゚)<可以看看以下的範例。

var array=new Array();
array[0]=123;
array[1]=1.1;
array[2]="abc";

(k ゚∀゚)<在上述的範例裡,array這陣列有3個元素,分別被初始為123、1.1和"abc"。

(k ゚∀゚)<我們亦可同時進行宣告和初始化,就像以下的範例。

var array=[123,1.1,"abc"];

(k ゚∀゚)<在上述的範例裡,吉里吉里會建立陣列,並初始化為123、1.1和"abc"。

有沒有一些實際例子?>( ゚ω゚ s)

(k ゚∀゚)<可以看看以下的範例。

var month=[31,28,31,30,31,30,31,31,30,31,30,31];
var date=new Date();

System.inform("現在是"+date.getMonth()+"月,這月份共有"+month[date.getMonth()-1]+"日。");

(k ゚∀゚)<這個date可以取得系統時間,不過大家可以先不用理會它,詳細的以後會再介紹。

(k ゚∀゚)<在上述的範例裡,我們用date.getMonth()取得了現在的月份,而我們有一個陣列month,裡面順序地儲存了每個月的日數,利用month[date.getMonth()-1]來取得相關的日數。

為什麼是date.getMonth()-1而不是date.getMonth()?>( ゚ω゚ s)

(k ゚∀゚)<因為是索引值由0開始,所以1月的日數是儲存在month[0],2月的日數是儲存在month[1],如此類推,月份和索引值是相差1的。

(k ゚∀゚)<今次介紹到這裡,下次再見。

沒有留言:

發佈留言