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