![javascript基礎(chǔ)3尚學(xué)堂百戰(zhàn)程序員_第1頁(yè)](http://file4.renrendoc.com/view/1e21be834839b40f7ffada203f1538ea/1e21be834839b40f7ffada203f1538ea1.gif)
![javascript基礎(chǔ)3尚學(xué)堂百戰(zhàn)程序員_第2頁(yè)](http://file4.renrendoc.com/view/1e21be834839b40f7ffada203f1538ea/1e21be834839b40f7ffada203f1538ea2.gif)
![javascript基礎(chǔ)3尚學(xué)堂百戰(zhàn)程序員_第3頁(yè)](http://file4.renrendoc.com/view/1e21be834839b40f7ffada203f1538ea/1e21be834839b40f7ffada203f1538ea3.gif)
![javascript基礎(chǔ)3尚學(xué)堂百戰(zhàn)程序員_第4頁(yè)](http://file4.renrendoc.com/view/1e21be834839b40f7ffada203f1538ea/1e21be834839b40f7ffada203f1538ea4.gif)
![javascript基礎(chǔ)3尚學(xué)堂百戰(zhàn)程序員_第5頁(yè)](http://file4.renrendoc.com/view/1e21be834839b40f7ffada203f1538ea/1e21be834839b40f7ffada203f1538ea5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)組課程介紹課程大綱1.數(shù)組的概念2.數(shù)組的特點(diǎn)3.數(shù)組的調(diào)用4.數(shù)組的方法5.二維數(shù)組1.數(shù)組的概念 數(shù)組(array)是按照一定順序排列的一組值,每個(gè)值都擁有自己的編號(hào),編號(hào)從0開始。整個(gè)數(shù)組用方括號(hào)來(lái)表示。 語(yǔ)法:vararr=[item1,item2,item3]; 上述代碼中的item1、item2和item3元素就構(gòu)成一個(gè)數(shù)組。兩端的方括號(hào)是數(shù)組的標(biāo)志。因?yàn)閿?shù)組元素編號(hào)從0開始,所以item1是數(shù)組的第0個(gè)元素。ps:item1、item2和item3是泛指,javascript中的數(shù)組元素可以是任何類型的數(shù)據(jù)。
vararr=[‘123’,123,true,null,undefined,{'name':'frank'}]; 這是數(shù)組么?2.數(shù)組的特點(diǎn)(1)數(shù)組的本質(zhì)(2)數(shù)組的長(zhǎng)度(3)數(shù)組的遍歷(4)數(shù)組的空位(5)數(shù)組的'刪除'(1)數(shù)組的本質(zhì) 本質(zhì)上,數(shù)組是對(duì)象類型的一種特殊表現(xiàn)形式。因此創(chuàng)建的時(shí)候我們可以使用new方式來(lái)創(chuàng)建。 varnameArr=newArray('LiLei','HanMeiMei','Poliy');//['LiLei','HanMeiMei','Poliy']typeof運(yùn)算符會(huì)返回?cái)?shù)組的類型是object。typeofnameArr//"object"(2)數(shù)組的長(zhǎng)度 要討論數(shù)組的長(zhǎng)度問(wèn)題就要搞清楚數(shù)組在內(nèi)存中的存放方式。
前面我們說(shuō)過(guò),javascript中的數(shù)組元素可以是任何數(shù)據(jù)類型的。而在計(jì)算機(jī)中不同的數(shù)據(jù)類型數(shù)據(jù)是放在不同存儲(chǔ)區(qū)的。舉例來(lái)說(shuō):……內(nèi)存字符串類型數(shù)據(jù)存儲(chǔ)區(qū)數(shù)字類型數(shù)據(jù)存儲(chǔ)區(qū)對(duì)象類型數(shù)據(jù)存儲(chǔ)區(qū) 因此javascript中的數(shù)組元素是在內(nèi)存中的存儲(chǔ)位置不連續(xù)的。 但是我們又不能按照內(nèi)存地址來(lái)訪問(wèn)數(shù)組元素,那樣會(huì)造成編程過(guò)程中的災(zāi)難。所以為了解決這個(gè)問(wèn)題,我們按照下標(biāo)的方式來(lái)對(duì)數(shù)組元素進(jìn)行標(biāo)記。 所以我們計(jì)算數(shù)組長(zhǎng)度的時(shí)候只需要計(jì)算數(shù)組元素的個(gè)數(shù)即可。總結(jié):javascript數(shù)組在內(nèi)存中的存儲(chǔ)位置是不連續(xù)的,但是數(shù)組的下標(biāo)是連續(xù)的。根據(jù)上述原理,javascript給數(shù)組提供了一個(gè).length屬性來(lái)計(jì)算數(shù)組長(zhǎng)度。 語(yǔ)法:arr.length
varageArr=[18,24,30]; console.log(ageArr.length);//3length是一個(gè)可寫屬性。 如果設(shè)置length長(zhǎng)度小于數(shù)組本身長(zhǎng)度,那么多余元素舍棄。 如果設(shè)置length長(zhǎng)度大于數(shù)組本身長(zhǎng)度,那么缺少元素用空位補(bǔ)齊。 如果設(shè)置length長(zhǎng)度不是合法數(shù)值,那么會(huì)報(bào)錯(cuò)Invalidarraylength varageArr=[18,24,30]; ageArr.length=2; console.log(ageArr.length);//2
console.log(ageArr);//[18,24]varageArr=[18,24,30];ageArr.length=-1;console.log(age.length);//UncaughtRangeError:Invalidarraylength(…) varageArr=[18]; ageArr.length=3; console.log(ageArr.length);//3 console.log(ageArr);//[18] console.log(ageArr[1]);//undefined(3)數(shù)組的遍歷 如果想要連續(xù)訪問(wèn)數(shù)組中的每個(gè)元素,可以使用forin快速遍歷。
varheroArr=['GreenJuPeople','BlackGuaFu','MetalXia']; for(varindexinheroArr){ console.log(heroArr[index]); }
GreenJuPeople BlackGuaFu MetalXiaps:需要引起注意的是,forin循環(huán)遍歷數(shù)組的時(shí)候,for循環(huán)中的index表示的數(shù)組的下標(biāo)。并不是表示數(shù)組元素!(4)數(shù)組的空位 當(dāng)數(shù)組的某個(gè)位置是空元素,即兩個(gè)逗號(hào)之間沒(méi)有任何值,我們稱該數(shù)組存在空位(hole)。
varcountryNameArr=['China','','Japan']; countryNameArr.length//3
有趣的是:如果最后一個(gè)元素后面有逗號(hào),這種情況并不會(huì)產(chǎn)生空位。也就是說(shuō)最后一個(gè)元素后面的逗號(hào)有和沒(méi)有結(jié)果都是一樣的。(當(dāng)然這種寫法并不推薦。)
varcountryName=['China','American','Japan',]; countryName.length//3(5)數(shù)組的'刪除'
delete命令能夠刪除數(shù)組中的元素的值,從而形成空位。但是delete命令并不會(huì)影響length的屬性。vargirlFriends=['ZhangTianAi','LiuShiShi','SomeOne'];deletegirlFriends[1];console.log(girlFriends.length);//3console.log(girlFriends);//["ZhangTianAi",2:"SomeOne"]ps:delete命令在使用的時(shí)候,是根據(jù)數(shù)組下標(biāo)來(lái)對(duì)指定數(shù)組的值進(jìn)行刪除的。3.數(shù)組的調(diào)用 數(shù)組的調(diào)用實(shí)際上指的是數(shù)組元素的調(diào)用。數(shù)組元素通過(guò)【數(shù)組名+下標(biāo)】的方式來(lái)進(jìn)行訪問(wèn)。
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','SomeOne']; console.log('今天朕就選你侍寢吧,'+girlFriends[0]); console.log('張?zhí)鞇?ài):愛(ài)死你了皇上')
ps:數(shù)組元素一次只能訪問(wèn)一個(gè),不能一次連續(xù)訪問(wèn)多個(gè)數(shù)組元素。4.數(shù)組的方法javascript為數(shù)組提供了很多方法,方便開發(fā)者更好的使用數(shù)組。
(1)isArray:判斷是否為數(shù)組(2)valueOf:返回?cái)?shù)組本身(3)toString:將數(shù)組以字符串的形式返回(4)push:向數(shù)組末尾追加數(shù)據(jù),返回當(dāng)前數(shù)組的長(zhǎng)度(5)pop:刪除數(shù)組最后一個(gè)元素(6)join:將數(shù)組轉(zhuǎn)換為字符串,默認(rèn)按逗號(hào)隔開(7)shift():在數(shù)組頭部刪除一個(gè)元素(8)unshift():在數(shù)組頭部添加一個(gè)元素(9)reverse():數(shù)組反轉(zhuǎn)(10)slice:數(shù)組截取(11)splice:數(shù)組截取,并且可以插入新的元素(改變?cè)瓟?shù)組)(12)sort:排序(13)indexOf:索引(14)lastIndexOf:反序索引(1)isArray方法
isArray方法是數(shù)組提供的用來(lái)專門判斷當(dāng)前對(duì)象是否為數(shù)組的方法。如果是數(shù)組返回true,否則返回false。vararr=[];Array.isArray(arr);//true
vararr=newArray();varresult=Array.isArray(arr);//true
vararr=[1,2,3];varresult=Array.isArray(arr);//true
varresult=Array.isArray("anarray");document.write(result);//false并不是一個(gè)數(shù)組,而是一個(gè)字符串(2)valueOf方法
valueOf方法歸屬于Object對(duì)象類型,作用是返回指定對(duì)象的原始值。在數(shù)組中作用是返回?cái)?shù)組本身。(其他用法這里暫時(shí)不提) 語(yǔ)法:arr.valueOf() vararray=["FrankenStein",true,12,-5];
document.writen(array.valueOf()===array);//trueps:JavaScript的許多內(nèi)置對(duì)象都重寫了該函數(shù),以實(shí)現(xiàn)更適合自身的功能需要。因此,不同類型對(duì)象的valueOf()方法的返回值和返回值類型均可能不同。(3)toString方法
toString方法能夠把數(shù)組轉(zhuǎn)換成字符串。 語(yǔ)法:arr.toString()
vargirlFriends=['ZhangTianAi','LiuShiShi','SomeOne'];
console.log(girlFriends.toString());//ZhangTianAi,LiuShiShi,SomeOneps:toString方法不止能轉(zhuǎn)換數(shù)組,對(duì)于布爾值也能夠轉(zhuǎn)換。(4)push方法
push方法用于在數(shù)組的末端添加一個(gè)或多個(gè)元素,并返回添加后的數(shù)組的長(zhǎng)度。 語(yǔ)法:arr.push(item)
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.push('someOne'));//4(5)pop方法
pop方法用于刪除數(shù)組的最后一個(gè)元素,并返回刪除的這個(gè)元素。 語(yǔ)法:arr.pop()
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.pop());//劉詩(shī)詩(shī)(6)join方法
join方法能夠以給定的參數(shù)做分隔符,將所有的數(shù)組元素組成一個(gè)字符串。如果不提供參數(shù),默認(rèn)使用逗號(hào)分隔。 語(yǔ)法:arr.join(separator)
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.join());//張?zhí)鞇?ài)李貞賢劉詩(shī)詩(shī)
console.log(girlFriends.join(','));//張?zhí)鞇?ài),李貞賢,劉詩(shī)詩(shī)(7)shift方法
shift方法用于刪除數(shù)組中的第一個(gè)元素,并返回刪除的這個(gè)元素。 語(yǔ)法:arr.shift()
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.shift());//張?zhí)鞇?ài) console.log(girlFriends);//['李貞賢','劉詩(shī)詩(shī)'](8)unshift方法
unshift方法用于在數(shù)組的第一個(gè)位置添加元素,并返回添加元素后新數(shù)組的長(zhǎng)度。 語(yǔ)法:arr.unshift(item)
vargirlFriends=['李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.unshift('張?zhí)鞇?ài)'));//3(9)reverse方法
reverse方法能夠反序排列數(shù)組。 語(yǔ)法:arr.reverse()
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.reverse());//['劉詩(shī)詩(shī)','李貞賢','張?zhí)鞇?ài)'](10)slice方法
slice方法作用是能夠根據(jù)指定的【起始點(diǎn)】和【結(jié)束點(diǎn)】來(lái)對(duì)數(shù)組進(jìn)行截取,并生成一個(gè)新數(shù)組。新數(shù)組的內(nèi)容是從起始點(diǎn)下標(biāo)開始的元素到結(jié)束點(diǎn)下標(biāo)的元素,但是不包括結(jié)束點(diǎn)下標(biāo)的元素本身。
語(yǔ)法:arr.slice(index1,index2);
vargirlFriends=['張?zhí)鞇?ài)','李貞賢','劉詩(shī)詩(shī)'];
console.log(girlFriends.slice(1,2));//李貞賢上面代碼的作用是,從數(shù)組下標(biāo)1元素(李貞賢)開始截取,到數(shù)組下標(biāo)2元素(劉詩(shī)詩(shī))為止。但是不包括劉詩(shī)詩(shī)。ps:slice方法的參數(shù)可以是負(fù)值。-1代表最后一個(gè)元素,-2代表倒數(shù)第二個(gè)元素。
vargirlFriends=['ZhangTianAi','LiuShiShi','SomeOne']; console.log(girlFriends.slice(-2,-1));//LiuShiShipss:如果只寫一個(gè)參數(shù),則表示從當(dāng)前坐標(biāo)開始截取一直到最后一個(gè)元素。(11)splice方法
splice方法和slice方法很相似,但是splice功能更強(qiáng)大一些。 splice方法的作用是在指定下標(biāo)處截取一定長(zhǎng)度的元素,再插入一些新元素,并將刪除的元素構(gòu)成一個(gè)新數(shù)組返回。splice方法會(huì)改變?cè)緮?shù)組。 語(yǔ)法:arr.splice(index,removeCount,addItem1,addItem2,…) varnumbers=[1,2,3,'a','b','c',7,8,9]; varnew1=numbers.splice(3,3,4,5,6); console.log(new1);//["a","b","c"] console.log(numbers);//[1,2,3,4,5,6,7,8,9] 上述代碼中numbers.splice(3,3,4,5,6);的含義是,從數(shù)組下標(biāo)為3的元素開始,刪除3個(gè)元素,然后把4,5,6插入到原數(shù)組當(dāng)中。ps:對(duì)于splice方法來(lái)說(shuō),有沒(méi)有新元素不是必要的。(12)sort方法
sort方法用于對(duì)數(shù)組元素進(jìn)行排序。默認(rèn)按照編碼方式進(jìn)行排序(即不在括號(hào)里寫任何內(nèi)容),如果不希望按照默認(rèn)方式排序,則需要自定義排序函數(shù)。 語(yǔ)法:arr.sort(sortby) vararr=[1,100,40,25,38]; console.log(arr.sort());//[1,100,25,38,40] 如果調(diào)用該方法時(shí)沒(méi)有使用參數(shù),將按字母順序?qū)?shù)組中的元素進(jìn)行排序,說(shuō)得更精確點(diǎn),是按照字符編碼的順序進(jìn)行排序。要實(shí)現(xiàn)這一點(diǎn),首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進(jìn)行比較。 vararr=['Frank','arik','sophia']; console.log(arr.sort());//["Frank","arik","sophia"] 如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù)functionsortNumber(a,b){returna-b>0}vararr=[100,4,25,33,18];document.write(arr+"<br/>")//[100,4,25,33,18]document.write(arr.sort(sortNumber))//[4,18,25,33,100](13)indexOf方法
indexOf方法能夠從前到后檢索數(shù)組,并返回元素在數(shù)組中的第一次出現(xiàn)的下標(biāo),如果沒(méi)有索引到則返回-1。indexOf第二個(gè)參數(shù)表示從第幾個(gè)元素開始索引,是可選參數(shù)。 語(yǔ)法:arr.indexOf(item,beginIndex)
varnumbers=[11,13,15,17,19,11];
console.log(numbers.indexOf(11));//0 console.log(numbers.indexOf(100));//-1ps:第二個(gè)參數(shù)可以是負(fù)值。如果是-1則表示從最后一個(gè)元素開始向后查找,這種寫法我個(gè)人不推薦。 varnumbers=[11,13,15,17,19,11]; console.log(numbers.indexOf(11,-1));//5 console.log(numbers.indexOf(19,-1));//-1表
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- NR-11c-生命科學(xué)試劑-MCE-9201
- 6-O-Sulfo-β-cyclodextrin-sodium-生命科學(xué)試劑-MCE-5754
- 2025年度高端火鍋店品牌連鎖合作協(xié)議
- 二零二五年度經(jīng)濟(jì)補(bǔ)償協(xié)議書-產(chǎn)品責(zé)任賠償協(xié)議
- 2025年度員工解除勞動(dòng)合同關(guān)系協(xié)議書(技術(shù)崗位)
- 施工單位關(guān)于項(xiàng)目驗(yàn)收的聯(lián)絡(luò)函
- 小額金融科技化營(yíng)銷戰(zhàn)略-以農(nóng)村貸款市場(chǎng)為例
- 《用正比例解決問(wèn)題》教學(xué)設(shè)計(jì)(人教版六年級(jí)數(shù)學(xué)下冊(cè))
- 個(gè)人雇傭合同協(xié)議模板
- 上海市短期勞務(wù)合同模板
- 2024簡(jiǎn)易租房合同下載打印
- TBSES 001-2024 建設(shè)項(xiàng)目環(huán)境影響后評(píng)價(jià)技術(shù)指南 污染影響類
- 阿基米德課件
- 2024年步步高高考英語(yǔ)大一輪復(fù)習(xí)(新人教版)基礎(chǔ)知識(shí)默寫本必修第一冊(cè)含答案
- 盤錦市重點(diǎn)中學(xué)2024年中考英語(yǔ)全真模擬試卷含答案
- 2024年《幼兒教師職業(yè)道德》教案
- 平安產(chǎn)險(xiǎn)湖南省商業(yè)性雞蛋價(jià)格指數(shù)保險(xiǎn)條款
- 石家莊市第四十中學(xué)2021-2022學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題
- 《共演戰(zhàn)略》分析工具
- 揚(yáng)州市古樹名木匯編
- 提高臥床患者踝泵運(yùn)動(dòng)的執(zhí)行率
評(píng)論
0/150
提交評(píng)論