2012年7月18日星期三

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

(k ゚∀゚)<上一次只是簡單介紹了陣列,今次我們再深入瞭解一些有關陣列的事情。

其實上一次已經有問題想問,如果沒有進行初始化,陣列裡一開始的值是什麼﹖>( ゚ω゚ s)

(k ゚∀゚)<如果陣列裡的元素沒有進行初始化,那麼它便是void,我們可以看看以下的範例。

var arr=new Array();
arr[2]=1;
System.inform("arr[0]的值是"+arr[0]+"\n其資料型態是"+typeof arr[0]);

(k ゚∀゚)<在上述的範例裡,由於我們沒有將arr[0]和arr[1]初始化,所以它們的值是void。

(k ゚∀゚)<有時我們想知道陣列的長度,可以利用count屬性來取得陣列的長度,看看以下的範例。

var arr=[1,2,3];
System.inform(arr.count);

(k ゚∀゚)<在上述的範例裡,arr.count的值是3,代表這陣列的長度是3,即是有3個元素。

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

var arr=new Array();
arr[2]=1;
System.inform(arr.count);

(k ゚∀゚)<今次arr.count的值是什麼?

是不是1?>( ゚ω゚ s)

(k ゚∀゚)<不是,雖然我們只是對arr[2]進行初始化,不過不代表陣列的長度是1,實際上這陣列的長度是3,只不過arr[0]和arr[1]的值是void而已。

(k ゚∀゚)<有時候我們將新的值存放到陣列裡,可以考慮使用add(),add()可以將新的元素加到陣列的最後部分。

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

var arr=[1,2,3]);
arr.add(4);
System.inform(arr[3]);

這陣列現在是不是[1,2,3,4]?>( ゚ω゚ s)

(k ゚∀゚)<對呀,原本的陣列只是[1,2,3],當執行arr.add(4)時,吉里吉里會將4加入到陣列的最後部分,所以會變成[1,2,3,4]。

(k ゚∀゚)<而若果我們想將新的值插入到陣列的某處,可以考慮使用insert(),insert()有兩個參數,第一個是指定位置,第二個是想插入到陣列的值,看看以下的範例。

var arr=[1,2,3]);
arr.insert(1,4);
System.inform(arr[1]);

(k ゚∀゚)<當執行insert(1,4)時,吉里吉里會將4插入到arr[1]的位置,所以arr[1]會變成4。

那麼原本在這個位置的值怎麼樣,被覆蓋了嗎?>( ゚ω゚ s)

(k ゚∀゚)<不是的,原本的值會移到後面,所以執行後陣列會變成[1,4,2,3]。

(k ゚∀゚)<有插入當然也有移除,當我們想移除某位置的元素,可以利用erase(),它有一個參數,就是指定其位置,看看以下的範例。

var arr=[1,2,3]);
arr.erase(1);
System.inform(arr[1]);

(k ゚∀゚)<當執行erase(1)時,吉里吉里會將arr[1]的值刪除掉,所以arr會變成[1,3]。

(k ゚∀゚)<除了透過位置來移除元素,我們還可利用remove()來某個值的元素,remove()有兩個參數,第一個是指定要移除的值,第二個是設定是否刪除所有符合的元素,如果是true的話,所有符合的元素都會被刪除,如果是false的話,只有第一個符合的元素會被刪除。看看以下的範例。

var arr=[1,1,2,2,3,3];
arr.remove(1,true);
System.inform(arr[0]);

(k ゚∀゚)<當執行remove(1,true)時,吉里吉里會將所有值為1的元素全部刪除,所以arr會變成[2,2,3,3]。

(k ゚∀゚)<但好像以下的範例……

var arr=[1,1,2,2,3,3];
arr.remove(1,false);
System.inform(arr[0]);

(k ゚∀゚)<當執行remove(1,false)時,吉里吉里只會將第一個符合的元素刪除,所以arr會變成[1,2,2,3,3]。

原來如此。>( ゚ω゚ s)

(k ゚∀゚)<最後介紹一下clear(),當我們希望將陣列裡所有元素都刪除,這時就可考慮用clear(),clear()會將現時在陣列裡的所有元素都刪除,看看以下的範例。

var arr=[1,2,3];
arr.clear();

(k ゚∀゚)<當執行clear(),arr裡的元素都被刪除,變成一個空陣列。

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

沒有留言:

發佈留言