遍歷數(shù)組、對象的方法

前提:前端最重要的任務(wù)的經(jīng)常要處理數(shù)據(jù)的!經(jīng)常的是列表的遍歷問題!例如遍歷數(shù)組、對象的方法?。。?/span>
具體遍歷數(shù)組、對象的方法:
遍歷數(shù)組
遍歷對象
一、遍歷數(shù)組
1、普通for循環(huán)

2、forEach循環(huán)

forEach接收一個回調(diào)函數(shù)作為參數(shù),而這個回調(diào)函數(shù)有接受三個參數(shù),作為參數(shù)。item是每個元素,index元素在數(shù)組中的下標,arr數(shù)組本身。? ?沒有返回值!
3、map循環(huán)

map的用法和forEach差不多。但是map是有返回值的。他的返回值是一個新數(shù)組,map方法不改變原數(shù)組。是映射,即數(shù)組元素的映射。它提供一個回調(diào)函數(shù),參數(shù)依次為處于當前循環(huán)的元素、該元素下標、數(shù)組本身,三者均可選。默認返回一個數(shù)組,這個新數(shù)組的每一個元素都是原數(shù)組元素執(zhí)行了回調(diào)函數(shù)之后的返回值。
4、for–of循環(huán)

只有是現(xiàn)實iterator 接口的才能用for---of.對象不能
es6新增了interator接口的概念,目的是對于所有數(shù)據(jù)結(jié)構(gòu)提供一種統(tǒng)一的訪問機制,這種訪問機制就是for of。
即:所有有interator接口的數(shù)據(jù),都能用for of遍歷。常見的包括數(shù)組、類數(shù)組、Set、Map等都有interator接口。
5、filter過濾

filter,過濾,即對數(shù)組元素的一個條件篩選。它提供一個回調(diào)函數(shù),參數(shù)依次為處于當前循環(huán)的元素、該元素下標、數(shù)組本身,三者均可選。默認返回一個數(shù)組,原數(shù)組的元素執(zhí)行了回調(diào)函數(shù)之后返回值若為true,則會將這個元素放入返回的數(shù)組中。
filter方法不改變原數(shù)組
6、every遍歷

every()是對數(shù)組中的每一項運行給定函數(shù),如果該函數(shù)對每一項返回true,則返回true。(全部符合條件)
7、some遍歷

some()是對數(shù)組中每一項運行指定函數(shù),如果該函數(shù)對任一項返回true,則返回true。(只要有一個符合)
some方法和every的用法非常類似,提供一個回調(diào)函數(shù),參數(shù)依次為處于當前循環(huán)的元素、該元素下標、數(shù)組本身,三者均可選。
數(shù)組的每一個元素都會執(zhí)行回調(diào)函數(shù),當返回值全部為true時,every方法會返回true,只要有一個為false,every方法返回false。當有一個為true時,some方法返回true,當全部為false時,every方法返回false。
some、every方法不改變原數(shù)組。
8、reduce

reduce方法有兩個參數(shù),第一個參數(shù)是一個回調(diào)函數(shù)(必須),第二個參數(shù)是初始值(可選)?;卣{(diào)函數(shù)有四個參數(shù),依次為本輪循環(huán)的累計值、當前循環(huán)的元素(必須),該元素的下標(可選),數(shù)組本身(可選)。
reduce方法,會讓數(shù)組的每一個元素都執(zhí)行一次回調(diào)函數(shù),并將上一次循環(huán)時回調(diào)函數(shù)的返回值作為下一次循環(huán)的初始值,最后將這個結(jié)果返回。
如果沒有初始值,則reduce會將數(shù)組的第一個元素作為循環(huán)開始的初始值,第二個元素開始執(zhí)行回調(diào)函數(shù)。
最常用、最簡單的場景,是數(shù)組元素的累加、累乘
reduce方法不改變原數(shù)組

reduceRight()方法的功能和reduce()功能是一樣的,不同的是reduceRight()從數(shù)組的末尾向前將數(shù)組中的數(shù)組項做累加。
reduceRight()首次調(diào)用回調(diào)函數(shù)callbackfn時,prevValue 和 curValue 可以是兩個值之一。如果調(diào)用 reduceRight() 時提供了 initialValue 參數(shù),則 prevValue 等于 initialValue,curValue 等于數(shù)組中的最后一個值。如果沒有提供 initialValue 參數(shù),則 prevValue 等于數(shù)組最后一個值, curValue 等于數(shù)組中倒數(shù)第二個值
10、find

find()方法返回數(shù)組中符合測試函數(shù)條件的第一個元素。否則返回undefined
11、findIndex

?對于數(shù)組中的每個元素,findIndex 方法都會調(diào)用一次回調(diào)函數(shù)(采用升序索引順序),直到有元素返回 true。只要有一個元素返回 true,findIndex 立即返回該返回 true 的元素的索引值。如果數(shù)組中沒有任何元素返回 true,則 findIndex 返回 -1。findIndex 不會改變數(shù)組對象!!!!!

二、遍歷對象
1、vue中v-for遍歷對象

2、for…in 遍歷數(shù)組和對象都可以

3、Object的方法



4、Object.getOwnPropertyNames(obj)

5、使用Reflect.ownKeys(obj)遍歷

