Flash AS教程:分類(lèi)說(shuō)明Flash中數組的用法
|
★關(guān)于數組的詳細介紹,這里就省略了,這里主要通過(guò)對一個(gè)數組的操作來(lái)分類(lèi)說(shuō)明數組的用法。首先在時(shí)間軸寫(xiě)如下代碼: var shuzu = ["i", "love", "flash"]; 然后分類(lèi)操作: ●添加元素: →直接添加:可以直接通過(guò)數組下標添加新數組,中間添加空元素。 shuzu[4]="!"; trace(shuzu);// i,love,flash,,! →用length屬性添加:增加length長(cháng)度可以增加空元素。 shuzu.length=5; trace(shuzu);// i,love,flash,,, →push()方法:向數組末尾添加一個(gè)或多個(gè)新元素,并返回數組長(cháng)度。 shuzu.push("!","?"); trace(shuzu); // i,love,flash,!,? trace(shuzu.push()); //5 它還可以用來(lái)嵌套數組,把上面的代碼換成下面的樣子: shuzu2=["!","?"]; shuzu.push(shuzu2); trace(shuzu); // i,love,flash,!,? trace(shuzu.push()); // 4 (因為這次“!”和“?”是做為一個(gè)嵌套數組作為shuzu的元素的,所以這里是4不是5。 →concat()方法:也是向數組末尾添加一個(gè)或多個(gè)元素,但它并不修改原數組,而是返回一個(gè)新數組。 var shuzu2=shuzu.concat("?"); trace(shuzu); //i,love,flash trace(shuzu2); /i,love,flash,? 它也可以用來(lái)合并兩個(gè)數組,但不是嵌套,而是把另一個(gè)數組的每個(gè)元素作為但個(gè)元素添加進(jìn)來(lái)。 var shuzu = ["i", "love", "flash"]; shuzu2=["!","?"]; shuzu3=shuzu.concat(shuzu2); trace(shuzu3); // i,love,flash,!,? trace(shuzu3.length); //5 (注意,這次是5,而不是4了) →unshift()方法:向數組開(kāi)頭添加一個(gè)或多個(gè)新元素,并返回數組長(cháng)度。 shuzu.unshift("!","?"); trace(shuzu); // !,?,i,love,flash trace(shuzu.unshift()); //5 →splice()方法:用來(lái)添加或刪除數組元素。語(yǔ)法:shuzu.splice(kaishi,shanchushu,t1,t2……tn)其中,kaishi是一個(gè)數字,表示要刪除或添加元素的開(kāi)始位置;shanchushu也是一個(gè)數字,表示要刪除的元素數量,如果省略,將刪除kaishi及其后的所有元素,如果為0就不刪除任何元素;t1,t2……tn表示要添加到kaishi之前的元素。此方法返回所刪除的元素構成的數組。 shuzu.splice(1,1,"!","?"); trace(shuzu); // i,!,?,flsh trace(shuzu.splice(1,2)); //因為第一句代碼已經(jīng)把數組修改成["i","!","?","flash"],所以這里輸出!,? ●刪除元素: →delete操作符:delete操作符主要用來(lái)徹底刪除命名數組元素,但對于編號數組,它只能將數組的元素設置為undefined,而不會(huì )徹底刪除。它的語(yǔ)法為:delete shuzu[bianhao],bianhao為要設置成undefined的元素下標。 delete shuzu[1]; trace(shuzu); // i,undefined,flash trace(shuzu.length); //依舊為3,而不是2 →用length屬性刪除:減小length長(cháng)度可以從數組末尾刪除元素。 shuzu.length=2; trace(shuzu); //i,love →pop()方法:刪除數組最后一個(gè)元素。并返回它所刪除的元素值。 var shanchu=shuzu.pop(); //執行方法,并將返回值儲存在shanchu里 trace(shuzu); //i,love trace(shanchu); //flash →shift()方法:刪除數組第一個(gè)元素。并返回它所刪除的元素值。 var shanchu=shuzu.shift(); //執行方法,并將返回值儲存在shanchu里 trace(shuzu); //love,flash trace(shanchu); //i →splice()方法:前面已經(jīng)講過(guò),這里再舉一個(gè)例子。 shuzu.splice(1); //刪除1及以后所有的元素 trace(shuzu); //i ●數組操作工具: →reverse()方法:顛倒數組中的排序。 shuzu.reverse(); trace(shuzu); //flash,love,i →sort()方法:此方法通過(guò)調用自定義函數來(lái)自定義排序規則。 如果沒(méi)有自定義函數,直接調用此方法,則它將把數組中元素暫時(shí)轉換成串,并按照ASCII(Unicode)中的值來(lái)進(jìn)行排序。 shuzu.push("4","1","!","Flash"); //先向數組末尾添加一些元素 shuzu.sort(); //!,1,4,Flash,flash,i,love 如果想按照自定義的規則來(lái)對數組排序,就必須先自定義一個(gè)排序函數,然后把這個(gè)函數作為參數傳遞給sort方法。下面就寫(xiě)一個(gè)簡(jiǎn)單的比較函數:這個(gè)函數需要兩個(gè)參數a和b(注意a在前,b在后),并返回三值:如果返回-1,數組就按照函數參數a,b的順序排序;如果返回0,數組就保持原來(lái)的位置;如果返回1,數組就按照b,a的順序排序,也就是倒序!看下面的代碼: shuzu.push("4","1","!","Flash"); //先向數組末尾添加一些元素 function paixu(a,b){ //定義倒序函數 if(a〈b){ return 1; //如果數組中的元素a〈b,就倒序 }else if(a>b){ return -1; //如果數組中的元素a>b,就保持原來(lái)的順序 }else{ return 0; //如果兩個(gè)元素相等,也保持原序 } } shuzu.sort(paixu); trace(shuzu); //love,i,flash,Flash,4,1,! →slice()方法:獲取元素,并組成一個(gè)新數組。 它的語(yǔ)法為:shuzu.slice(kaishi,jieshu),kaishi為要獲取的第一個(gè)元素的下標;jieshu為指定要獲取元素中,最后一個(gè)元素后面的元素下標,如果省略,就默認為數組長(cháng)度。 var xinshuzu1=shuzu.slice(1,3); trace(xinshuzu1); //love,flash trace(shuzu); //原數組并無(wú)改動(dòng),依舊為i,love,flash var xinshuzu2=shuzu.slice(0); trace(xinshuzu2); //i,love,flash trace(shuzu); //i,love,flash →join()方法:它會(huì )將數組的每一個(gè)元素先轉換成串,空元素被轉換成空串。然后,用一個(gè)“定界符”把各個(gè)小串連接成一個(gè)大串,并返回此結果。注意,它并不修改原數組。它的語(yǔ)法為shuzu.join(dingjiefu),其中dingjiefu為定界符。 shuzu2=[1,2,3]; //定義一個(gè)新數組 shuzu.push(shuzu2); //將新數組嵌套到shuzu中 var fanhuichuan=shuzu.join("|"); //對shuzu調用join方法,并把返回的串賦給變量fanhuichuan trace(fanhuichuan); //i|love|flash|1,2,3 (可見(jiàn),此方法對嵌套數組無(wú)效) trace(shuzu); //i,love,flash →toString()方法:返回一個(gè)轉換為串的數組元素列表,中間用逗號分隔。此方法可以隱式的應用,只要把數組用在串語(yǔ)境中就行,比如: trace(shuzu)! var fanhuichuan=shuzu.toString(); //調用toString方法,并把返回串儲存在變量fanhuichuan中 trace(fanhuichuan); //i,love,flash (此為返回的串值) trace(shuzu); //i,love,flash {其實(shí),trace(shuzu)就相當于trace |
聯(lián)系客服