付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第7章 數(shù)組數(shù)組是一種復(fù)雜變量。相對于基元值(Boolean、int、Number、String和uint),數(shù)組屬于復(fù)雜值。它用來存儲一組變量的名字和值,一般來說這些變量是相關(guān)的,比如存儲一個班級學(xué)生的姓名、學(xué)號、性別、成績等。7.1 數(shù)組基本概念顧名思義,數(shù)組是一組數(shù)據(jù)的集合,在ActionScript中的,表現(xiàn)為使用方括號 “ ”組織的數(shù)據(jù)集合。下面是幾種常見的數(shù)組形式。7.1 數(shù)組基本概念數(shù)組一般由哈希映射表(Hash Map)實現(xiàn),是一種把值映射到鍵名(key)的容器。當(dāng)鍵名全部使用數(shù)字序號時,這些鍵也被稱為索引或下標(biāo),如下圖所示。在ActionScript中,數(shù)組按鍵名的類型分為兩
2、種。以數(shù)字作為鍵名類型的稱為數(shù)字索引數(shù)組(Indexed Array);以字符串(或混有字符串的數(shù)字)作為鍵名的數(shù)組稱為關(guān)聯(lián)數(shù)組(Associative Array)。7.2 創(chuàng)建數(shù)組在ActionScript中,數(shù)組默認的索引值由0開始,不需單獨指定。創(chuàng)建數(shù)組時,ActionScript會自動創(chuàng)建鍵名,然后遞增。創(chuàng)建數(shù)組有兩種方法供選擇:一是使用構(gòu)造函數(shù),二是使用數(shù)組訪問運算符。7.2.1 數(shù)組構(gòu)造函數(shù)通過構(gòu)造函數(shù)創(chuàng)建對象時(不限于數(shù)組),使用關(guān)鍵字new。比如要創(chuàng)建一個新的數(shù)組對象myArray時,可以使用如下代碼。如果為構(gòu)造函數(shù)添加一個整數(shù)參數(shù),則會生成一個參數(shù)長度(length,指數(shù)組
3、含有元素的個數(shù))的數(shù)組,代碼如下。創(chuàng)建數(shù)組時,構(gòu)造函數(shù)也可以接受各個元素的值作為參數(shù),直接生成對應(yīng)的數(shù)組元素,代碼如下。7.2.2 數(shù)組訪問運算符數(shù)組使用方括號“ ”初始化一個新數(shù)組,也可以訪問數(shù)組元素,因此方括號“ ”被稱為數(shù)組訪問運算符。使用數(shù)組訪問運算符創(chuàng)建數(shù)組時非常簡單,代碼如下。也可以初始化一個含有元素的數(shù)組,代碼如下。由于使用“”比較方便,很多ActionScript程序員會傾向于使用訪問運算符來創(chuàng)建數(shù)組。使用“”還可以訪問數(shù)組中的各元素,其語法格式如下。7.3 數(shù)組的屬性數(shù)組只有一個屬性length,可以用來訪問數(shù)組的長度。所謂數(shù)組的長度,是指數(shù)組所包含元素的個數(shù)。數(shù)組長度與數(shù)組
4、的元素和索引密切相關(guān)。(A)數(shù)組的索引值必然由0遞增到length-1(因為第一個元素的索引是0,所以要減1),常常使用for循環(huán)遍歷數(shù)組中的元素。(B)訪問數(shù)組的第一個元素時使用:myArray0。(C)訪問數(shù)組的最后一個元素時使用:myArraymyArray.length 1。說明:二維數(shù)組(數(shù)組元素也是由數(shù)組構(gòu)成)的長度是其基本元素的個數(shù)。7.4 數(shù)組的構(gòu)造所有數(shù)組(包括數(shù)字索引數(shù)組和關(guān)聯(lián)數(shù)組)根據(jù)數(shù)組的維度,可以分為一維數(shù)組、二維數(shù)組和多維數(shù)組。超過二維的數(shù)組,統(tǒng)稱為多維數(shù)組。7.4.1 一維數(shù)組一維數(shù)組只保存一列內(nèi)容,例如我們之前例子中的12,true,你好,0.88,null。下
5、面創(chuàng)建一個空數(shù)組,再對各個鍵賦值,形成一維數(shù)組,代碼如下。一維數(shù)組可以理解為一份清單。7.4.2 二維數(shù)組與多維數(shù)組一維數(shù)組的元素是單一的鍵名/值對,而二維數(shù)組的鍵名所對應(yīng)的則是另一個一維數(shù)組。例如,一個存儲姓名和分數(shù)的數(shù)組可以是如下形式。要了解張三的相關(guān)分數(shù),可以使用數(shù)組訪問運算符“ ”訪問第一個元素,而名字和分數(shù)則任要按照數(shù)組的訪問方法使用“ ”。7.4.2 二維數(shù)組與多維數(shù)組table0中存儲的值是一個一維數(shù)組張三,73。要訪問這個數(shù)組的第一個元素時則使用table00。多維數(shù)組與二維數(shù)組類似,按照鍵名/值一層一層對應(yīng)下去。不過二維數(shù)組以上就已經(jīng)比較復(fù)雜了,一般不再使用“ ”直接定義。下
6、例創(chuàng)建三維數(shù)組,并對數(shù)組中的數(shù)據(jù)進行訪問。說明:allTable111的各級索引關(guān)系為:allTable1是小明,88,小紅,95;allTable11是小紅,95;allTable111是95。7.5 合并數(shù)組在前一節(jié)講解多維數(shù)組時,我們曾經(jīng)把兩個二維數(shù)組組合為一個三維數(shù)組。而在處理實際問題時,這兩個數(shù)組結(jié)構(gòu)相當(dāng),更傾向于組合起來,形成如下結(jié)構(gòu)形式。要合并兩個數(shù)組,可以使用concat方法,其語法形式如下。7.6 數(shù)組元素排序當(dāng)數(shù)組存儲一組數(shù)據(jù)后,有時需要對這組值進行排序,ActionScript 3.0提供了如下幾個排序的方法供選擇。7.6.1 sort方法1.默認情況sort方法對數(shù)組中
7、的元素按Unicode值的順序排序。默認情況下(不使用任何參數(shù)時)。(A)sort在排序時將所有元素按字符串處理。先比較第一個字符,相同時再比較第二個字符。說明:因為默認情況下,排序按字符串來排,所以比較幾個元素時,第一個字符為1的字符串自然排在4和9之前。(B)按升序排列。A排在B之前。(C)區(qū)分大小寫,Z優(yōu)先于a(Z的Unicode值是90,a是97)。7.6.1 sort方法2.排序方法參數(shù)如果需要字義其它類型的排序,sort方法有兩個參數(shù)供選擇:一個是排序方法,另一個是排序類型。排序方法是一個函數(shù),在定義時它包含兩個參數(shù)(A,B),并要求返回一個值。當(dāng)返回-1時則把參數(shù)A放在B之前,返
8、回0時則A和B相等(隨機放),返回1時參數(shù)A放在B之后。7.6.2 sortOn方法sort方法解決了字符串和數(shù)值作為數(shù)組元素的排列,但是如果數(shù)組元素是封裝好的對象怎么辦呢?sortOn方法給出了可以按元素的鍵值進行排序的方法。sortOn方法的語法格式如下。7.6.3 reverse方法reverse方法可以以當(dāng)前的順序倒轉(zhuǎn)數(shù)組,如下列代碼。注意:當(dāng)執(zhí)行過reverse方法后,原數(shù)組的順序也會發(fā)生變化。這一點與concat方法不同。7.7.1 添加刪除數(shù)組元素的基本方法要為數(shù)組添加或刪除元素,共有四種基本方法可以使用,它們分別是push,pop,shift,unshift。這四個方法成對出現(xiàn)
9、,其功能如下圖所示。push方法:在數(shù)組的最后添加一個元素。pop方法:刪除數(shù)組最后一個元素。unshift方法:在數(shù)組的開頭添加一個元素。shift方法:刪除數(shù)組的第一個元素。7.7.2 slice方法數(shù)組執(zhí)行slice方法后,返回原數(shù)組的一部分,這一部分的大小由參數(shù)決定,其語法格式如下。注意:slice后返回的數(shù)組不包括結(jié)束索引的元素,新數(shù)組的元素截止到結(jié)束索引之前。7.7.3 splice方法splice方法的作用是將數(shù)組刪除一部分元素,再添加一部分新元素。這個方法也是添加刪除數(shù)組元素最靈活的一個方法。其語法格式如下。在執(zhí)行splice方法后,原數(shù)組被改變?yōu)閯h除并添加新元素后的新數(shù)組,同
10、時返回被刪除掉的元素組成的數(shù)組。7.8 與字符串間的轉(zhuǎn)換數(shù)組與字符串之間聯(lián)系緊密,經(jīng)常會遇到在兩種數(shù)據(jù)類型互相轉(zhuǎn)換的情況。下面分別介紹數(shù)組轉(zhuǎn)化為字符串和字符串轉(zhuǎn)化為數(shù)組的方法。7.8.1 數(shù)組轉(zhuǎn)化為字符串的方法toString方法:數(shù)組轉(zhuǎn)化為字符串的常用方法是toString,其語法格式如下。join方法:數(shù)組轉(zhuǎn)化為字符串的另一方法是join,其結(jié)果與toString類似,不過toString會在轉(zhuǎn)化字符串的過程中,使用逗號“,”連接各個元素,而join則可以指定中間的這個連接符。其語法格式如下。7.8.2 字符串轉(zhuǎn)化為數(shù)組的方法split方法:split方法將字符串以指定字符為界,拆分為數(shù)組
11、。可以認為split是join方法的逆操作。其語法格式如下。match方法:match方法可以檢測字符串中符合條件的字符,并將其組織為數(shù)組,一般來說其參數(shù)為正則表達式。其語法格式如下。7.9 數(shù)組的檢索ActionScript 3.0也提供了一些方法檢索數(shù)組,判斷數(shù)組的元素是否符合條件。7.9.1 indexOf方法:indexOf方法的執(zhí)行結(jié)果返回要檢索的數(shù)組元素的索引值。其語法結(jié)構(gòu)如下。其中開始執(zhí)行搜索的索引值在缺省狀態(tài)時是從頭搜索。indexOf的返回值是一個整數(shù),檢索到的情況下返回索引值,檢索不到時返回-1。7.9.2 lastIndexOf方法:lastIndexOf方法與index
12、Of方法基本相同,不過它執(zhí)行的是從后向前的搜索。由以下實例可以了解這一特性。7.9.3 every方法every方法是一個批量檢測方法,它對各個元素按設(shè)置的條件進行檢測,當(dāng)檢測的所有結(jié)果都為true時返回布爾值true,否則返回false。every方法的語法結(jié)構(gòu)如下。其中,條件函數(shù)是一個具有三個參數(shù)的函數(shù),這三個參數(shù)分別為“元素”、“索引”和“數(shù)組對象”。7.9.4 some方法some方法與every方法類似,不過它進行檢測時,只要有一個元素滿足條件就返回布爾值true,只有當(dāng)所有條件都不滿足時才返回false。就這一特性來看,every是對每個元素的檢測結(jié)果執(zhí)行邏輯與(and)操作,而s
13、ome是對結(jié)果執(zhí)行邏輯或操作(or)。4.9.5 filter方法:filter方法也是會執(zhí)行與some和every相同的檢測,不過最終會將符合條件(返回true)的元素組織成一個新的數(shù)組。例如,以下代碼將把一個數(shù)組中的字符串元素組織成一個新數(shù)組。7.10 循環(huán)訪問數(shù)組元素數(shù)組是由一組數(shù)據(jù)(元素)組合而成的數(shù)據(jù)集合,對數(shù)組元素的循環(huán)訪問是數(shù)組應(yīng)用的重要方式。循環(huán)訪問數(shù)組的常用方式是使用是使用for循環(huán),同時Array類也提供了循環(huán)執(zhí)行函數(shù)的方法。7.10.1 for循環(huán)遍歷數(shù)組使用for循環(huán)訊問(遍歷)數(shù)組,常使用如下for循環(huán)結(jié)構(gòu)。下列代碼使用for循環(huán),輸出各個元素的值。7.10.2 fo
14、rin與for eachin遍歷使用forin循環(huán),可以遍歷數(shù)組的鍵名,for eachin可以遍歷數(shù)組的鍵值。forin循環(huán)的語法結(jié)構(gòu)如下。注意:key是個占位符,讀者可以選擇個人習(xí)慣的名稱。由于forin是遍歷數(shù)組的鍵名,所以key的類型為String。 7.10.2 forin與for eachin遍歷for eachin循環(huán)的語法如下。注意:element是個占位符,讀者可以選擇個人習(xí)慣的名稱。由于for eachin是遍歷數(shù)組的鍵值,而鍵值的類型可以是很多種類型(甚至可以是對象或數(shù)組),所以key的類型使用*號,指定為無類型。 7.10.3 forEach方法數(shù)組的forEach方法
15、與for循環(huán)的結(jié)構(gòu)不同,但其實現(xiàn)的意圖相同,也是遍歷數(shù)組中的各元素,執(zhí)行一個規(guī)定好的函數(shù)。其語法結(jié)構(gòu)如下。前例中輸出名單的for循環(huán),也可以使用forEach方法實現(xiàn)。7.10.4 map方法數(shù)組的map方法包含forEach方法的功能,同時還可以將遍歷時返回的值組織起來,返回一個新的數(shù)組??梢哉J為是forEach方法的延伸。前便使用forEach方法時定義的函數(shù)traceName通過改選,還可以返回各個元素的長度(名字的字數(shù))。7.11 關(guān)聯(lián)數(shù)組ActionScript 3.0中所定義的數(shù)組類(Array)所指的都是數(shù)字索引數(shù)組。數(shù)字索引數(shù)組的鍵是數(shù)字數(shù)據(jù)類型的。關(guān)聯(lián)數(shù)組也屬于數(shù)組的范疇,但
16、它的鍵可以為任何數(shù)組類型(甚至是Object)。關(guān)聯(lián)數(shù)組體現(xiàn)的是鍵與鍵值的一一對應(yīng)關(guān)系,這種關(guān)系稱為“值對”。ActionScript 3.0中使用關(guān)聯(lián)數(shù)組時,已經(jīng)超出了Array類的范圍。要使用字符串作為鍵的關(guān)聯(lián)數(shù)組時,可以使用對象(Object)來定義;若要使用對象作為鍵的關(guān)聯(lián)數(shù)組時,則可以使用預(yù)定義的字典類(Dictionary)。7.11.1 字符串鍵的關(guān)聯(lián)數(shù)組定義字符串鍵的關(guān)聯(lián)數(shù)組時可以使用Object對象來實現(xiàn)。使用對象創(chuàng)建運算符:聲明對象后,使用對象創(chuàng)建運算符【】將包括鍵名和鍵值的數(shù)據(jù)成對提供給對象。具體語法結(jié)構(gòu)如下。7.11.1 字符串鍵的關(guān)聯(lián)數(shù)組使用點語法:Object是個動態(tài)類,可以動態(tài)為其添加屬性,因此動態(tài)添加屬性也成為定義關(guān)聯(lián)數(shù)組或增加其元素的方法。其語法結(jié)構(gòu)如下。7.11.1 字符串鍵的關(guān)聯(lián)數(shù)組使用數(shù)組訪問運算符:除使用點語法外,還可以使用適用范圍更廣的數(shù)組訪問運算符【 】,語法如下。7.11.1 字符串
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣西梧州市萬秀區(qū)殘疾人聯(lián)合會招聘社區(qū)殘協(xié)專職委員3人備考題庫及完整答案詳解1套
- 泡桐樹小學(xué)都江堰校區(qū)招聘備考考試題庫及答案解析
- 2026上半年云南事業(yè)單位聯(lián)考云南文化藝術(shù)職業(yè)學(xué)院招聘人員備考題庫及參考答案詳解一套
- 2026上半年貴州事業(yè)單位聯(lián)考黔西市招聘295人備考考試試題及答案解析
- 2025廣西憑祥市友誼鎮(zhèn)中心幼兒園招聘1人備考題庫(含答案詳解)
- 2026年國際金融專業(yè)考試國際金融市場與風(fēng)險管理實踐試題
- 2026年南昌大學(xué)附屬康復(fù)醫(yī)院(第四附屬醫(yī)院)高層次人才招聘考試備考試題及答案解析
- 2026年甘肅省蘭州市城關(guān)區(qū)南河幼兒園招聘幼兒教師備考考試試題及答案解析
- 2026年數(shù)據(jù)庫管理工程師專業(yè)技能考試
- 法律領(lǐng)域合同履行承諾書(9篇)
- 廣告牌吊裝安裝施工方案
- 豆制品企業(yè)生產(chǎn)過程節(jié)能降耗方案
- 臨床醫(yī)學(xué)三基三嚴培訓(xùn)
- 北師版一年級上冊數(shù)學(xué)全冊教案教學(xué)設(shè)計含教學(xué)反思
- 國際商務(wù)培訓(xùn)課件下載
- 危化品安全培訓(xùn)
- 云南少數(shù)民族介紹
- A公司新員工入職培訓(xùn)問題及對策研究
- 鑄件清理工上崗證考試題庫及答案
- 柴油單軌吊培訓(xùn)課件
- GB/T 32223-2025建筑門窗五金件通用要求
評論
0/150
提交評論