前端筆試題:手寫filter、map和reduce

1. filter
用法:
分析:
① 傳入一個function作為回調(diào)
② 返回一個新數(shù)組
③ 回調(diào)的參數(shù)分別為原數(shù)組元素、索引值、原數(shù)組,需要有返回值作為判斷條件
④ 為tru時會將當(dāng)前元素放入新數(shù)組中
實(shí)現(xiàn):
2. map
分析:
① 大致上與filter一樣,傳入回調(diào),回調(diào)的參數(shù)均是元素、索引值、原數(shù)組
② 不同之處在于map中會將回調(diào)的返回值放入到新數(shù)組中
實(shí)現(xiàn):
3. reduce
用法:
分析:
① 有兩個參數(shù):回調(diào)以及初始值
② 回調(diào)中傳入的參數(shù)為prev:上次返回的值、current:當(dāng)前元素、i:索引值、arr:原數(shù)組
③ 最終返回值為最后一次執(zhí)行回調(diào)的值
④ 重點(diǎn):需要判斷是否有初始值來傳入回調(diào)的值:
(1)有初始值:prev為初始值,current為數(shù)組第一個元素,i為0
(2)無初始值:prev為第一個元素、current為第二個元素、i為1
實(shí)現(xiàn):
不足之處麻煩點(diǎn)出,謝謝!