一、遍歷數(shù)組
1.一般的遍歷數(shù)組方法
length屬性是一個(gè)很特別的屬性,看到數(shù)組,大家一定會(huì)想到length, 那他具體有什么特性那?
簡(jiǎn)單介紹:
1.數(shù)組是一組數(shù)據(jù),length屬性表示這個(gè)數(shù)組中的內(nèi)容的個(gè)數(shù)。簡(jiǎn)稱數(shù)組的長(zhǎng)度。
2.數(shù)組對(duì)象是沒(méi)有任何方法的,只有一個(gè)唯一的屬性length。
3.當(dāng)設(shè)置屬性的時(shí)候,表示要修改該數(shù)組的長(zhǎng)度。數(shù)組的長(zhǎng)度會(huì)發(fā)生變化。
4.當(dāng)讀取時(shí),會(huì)實(shí)時(shí)返回?cái)?shù)組的當(dāng)時(shí)的長(zhǎng)度。
for循環(huán)實(shí)現(xiàn)數(shù)組的遍歷
原理:
1.通過(guò)for 構(gòu)造下標(biāo),根據(jù)下標(biāo)取出具體元素
2.(變量名.length) 可以動(dòng)態(tài)檢測(cè)數(shù)組元素的個(gè)數(shù)
3.arr[i] 表示的是第幾個(gè),不是計(jì)數(shù)器,是數(shù)組元素
4.arr.length 表示有幾個(gè) ,是數(shù)組的長(zhǎng)度
2.forEach遍歷數(shù)組
forEach()函數(shù)從頭到尾把數(shù)組遍歷一遍。有三個(gè)參數(shù)分別是:數(shù)組元素,元素的索引,數(shù)組本身(如果是一個(gè)參數(shù)就是數(shù)組元素,也就是數(shù)組的值。
遍歷:
輸出結(jié)果:
由此可見(jiàn):
1.val代表著數(shù)組中的值,而key代表著相對(duì)應(yīng)數(shù)組的下標(biāo)
2.方法用于調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù), 沒(méi)有返回值
定義:
map方法是通過(guò)循環(huán)的方式一個(gè)一個(gè)項(xiàng)的處理原來(lái)的數(shù)組,并返回新的數(shù)組,同時(shí),不會(huì)改變?cè)瓟?shù)組的值
輸出結(jié)果:
注意:
1.返回一個(gè)新的數(shù)組,但是不改變?cè)瓟?shù)組
2.map方法有返回值,返回值用變量接收。
forEach()和map()的區(qū)別
for Each 和map 都是遍歷數(shù)組的方法,用法類似,但是還是有很大區(qū)別的
相同點(diǎn):
1.都是循環(huán)遍歷數(shù)組中的每一項(xiàng);
2.在遍歷中執(zhí)行匿名函數(shù)都可以接收三個(gè)參數(shù),分別為:遍歷過(guò)程的每一項(xiàng)、遍歷序號(hào)(索引值)、原數(shù)組;
3.執(zhí)行的匿名函數(shù)中 的this都指向window。
不同點(diǎn):
map(): 根據(jù)遍歷執(zhí)行的匿名函數(shù),對(duì)于原數(shù)組中的每個(gè)值產(chǎn)生一個(gè)對(duì)應(yīng)的值,并返回一個(gè)新的數(shù)組,存在一個(gè)映射關(guān)系,并且不會(huì)改變?cè)瓟?shù)組,不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)。
4.for of遍歷數(shù)組:
es6新增加一個(gè)for of循環(huán) 得到的是元素
優(yōu)點(diǎn):
· 不同用于forEach方法,它可以與break、continue和return配合使用
· 提供了遍歷所有數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一操作接口
注意:for of不能遍歷對(duì)象,如果需要遍歷對(duì)象,我們一般會(huì)使用for in 如下:
二、遍歷對(duì)象
1.for...in遍歷對(duì)象
一般用于遍歷對(duì)象 keys表示obj對(duì)象的每一個(gè)鍵值對(duì)的鍵1:遍歷對(duì)象
輸出結(jié)果:
2、遍歷數(shù)組(不適用)
輸出結(jié)果:
for…in循環(huán)讀取屬性名,通過(guò)屬性名再獲得屬性值
for…in循環(huán)主要是為遍歷對(duì)象而設(shè)計(jì)的,雖然可以遍歷數(shù)組,但是不提倡這么使用。
更多關(guān)于前端培訓(xùn)的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。