日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

詳解JavaScript 高階函數(shù)

瀏覽:126日期:2023-10-13 18:37:20

高階函數(shù)簡介

高階函數(shù) 的英文名叫 Higher-Order Function ,是 函數(shù)式編程 中的一種。他的表現(xiàn)形式往往是通過把函數(shù)作為參數(shù)傳入另一個函數(shù),或者將函數(shù)作為另一個函數(shù)的返回值返回。在實(shí)際開發(fā)業(yè)務(wù)中, 高階函數(shù)往往可以抽象我們的代碼 ,將我們的命令式編程轉(zhuǎn)換為復(fù)用性更高級的函數(shù)式編程,從而 提升我們的代碼質(zhì)量 。

下面拿3個面試中常問的高階函數(shù)舉例子,希望看完以后能夠提升大家對JS的理解,提高我們的代碼質(zhì)量。 chat is cheap,show you my code~

Array.map()

功能介紹

map() 方法返回一個新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值。 map() 方法按照原始數(shù)組元素順序依次處理元素。

tips

注意: map() 不會對空數(shù)組進(jìn)行檢測。 注意: map() 不會改變原始數(shù)組。

實(shí)用意義及代碼舉例

//如果我們需要將一個數(shù)組中,每一項(xiàng)元素全都*2, //最基礎(chǔ)的作法,是剛學(xué)JS時的循環(huán)遍歷,再每一項(xiàng)中執(zhí)行*2的操作,例如: let arr1 = [0,1,2,3,4,5,6]; let arr2 = []; for (let i = 0;i<arr1.length;i++){ arr2.push(arr1[i]*2) } console.log(arr2) //[0, 2, 4, 6, 8, 10, 12] //這樣確實(shí)可以達(dá)到效果,但是這屬于命令式編程; //換做Map高階函數(shù)的方法實(shí)現(xiàn)起來,只需要1行,復(fù)用性也會更強(qiáng)。 let arr1 = [0,1,2,3,4,5,6]; let arr2 = arr1.map((item)=> item*2) console.log(arr2) //[0, 2, 4, 6, 8, 10, 12]

總結(jié):

針對數(shù)組中每一項(xiàng)都要做的操作,可以實(shí)用map方法

Array.reduce()

功能介紹

reduce() 方法接收一個函數(shù)作為累加器,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值。reduce() 可以作為一個高階函數(shù),用于函數(shù)的 compose。

tips:

注意: reduce() 對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的。

實(shí)用意義及代碼舉例

//如果有一個需求,需要我們將數(shù)組中每一項(xiàng)求和 //實(shí)用reduce,可以優(yōu)雅簡潔的實(shí)現(xiàn): let arr1 = [0,1,2,3,4,5,6]; let arr2 = arr1.reduce((prev,cur)=>{ //prev代表之前所有項(xiàng)的最終結(jié)果,cur代表當(dāng)前項(xiàng)的值 return prev+cur },0) //這里的0是初始項(xiàng)傳入的值,這里寫為0 console.log(arr2) //21 求和完畢 //reduce也可以用于數(shù)組去重 let arr1 = [0,1,2,3,4,5,6,5,6,7,6]; let arr2 = arr1.reduce((prev,cur)=>{ //當(dāng)之前所有項(xiàng)不包含當(dāng)前項(xiàng)元素時,push,否則直接返回之前所有去重項(xiàng)。 prev.indexOf(cur) === -1 && prev.push(cur); return prev },[]) //傳入空數(shù)組作為初始值 console.log(arr2) //[0, 1, 2, 3, 4, 5, 6, 7]

總結(jié):

針對數(shù)組中所有的項(xiàng)累計計算的操作,最終輸入一個值,可以使用reduce方法

Array.filter()

功能介紹

filter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。

tips

注意: filter() 不會對空數(shù)組進(jìn)行檢測。注意: filter() 不會改變原始數(shù)組。

實(shí)用代碼舉例

//例如,需求為獲取數(shù)組中所有大于等于4的元素,將他們組成一個數(shù)組 let arr1 = [0,1,2,3,4,5,6,5,6,7,6]; let arr2 = arr1.filter((item)=>{ return item >= 4 },[]) console.log(arr2) //[4, 5, 6, 5, 6, 7, 6]

總結(jié):

對于數(shù)組中每一項(xiàng)的篩選功能,可以使用filter方法

Array.flat()

功能介紹

flat() 方法可以將嵌套數(shù)組(多為數(shù)組)降維,變成低維數(shù)組或者一維數(shù)組。(數(shù)組攤平展開)

tips

注意: 存在一定兼容性問題,例如IE不兼容

實(shí)用代碼舉例

let arr1 = [0,1,2,3,4,5,[1,2,3],[1,2,[1,2,3,4]],6,7,6]; let arr2 = arr1.flat(1) //flat中傳入需要降維的層數(shù),默認(rèn)是1,如果有個三維數(shù)組他會被降級為二位數(shù)組, let arr3 = arr1.flat(Infinity) //[0, 1, 2, 3, 4, 5, 1, 2, 3, 1, 2, 1, 2, 3, 4, 6, 7, 6] //如果不管是幾維數(shù)組,需要得到1維數(shù)組的話,可以直接使用Infinity console.log(arr2) //[0, 1, 2, 3, 4, 5, 1, 2, 3, 1, 2, [1,2,3,4], 6, 7, 6]

以上就是詳解JavaScript 高階函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 高階函數(shù)的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品99一区二区| 国产精品多人| 婷婷成人在线| 免费视频亚洲| 99在线精品免费视频九九视| 国产午夜精品一区二区三区欧美| 午夜视频精品| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品久久久久77777丨| 青青国产91久久久久久| 国产欧美日韩在线一区二区| 久久爱www.| 成人国产精品| 日韩在线欧美| 在线综合欧美| 7777精品| 精品国产亚洲日本| 视频福利一区| 美女精品在线| 综合视频一区| 国产欧美一区二区三区国产幕精品| 国产精品.xx视频.xxtv| 黄毛片在线观看| 在线亚洲精品| 欧美一级久久| 日本免费一区二区三区四区| 中文日韩欧美| 国产欧美精品久久| 亚洲三级欧美| 香蕉久久夜色精品国产| 国产欧美在线观看免费| 中国字幕a在线看韩国电影| 宅男在线一区| 午夜天堂精品久久久久| 国产精品高清一区二区| 视频福利一区| 免费观看在线综合色| 国产毛片精品久久| 久久三级视频| 日韩高清欧美激情| 日韩在线观看一区| 在线精品福利| 国产aⅴ精品一区二区三区久久 | 精品久久久网| 伊人久久成人| 国产亚洲精品美女久久久久久久久久| 久久不见久久见中文字幕免费| 99精品综合| 欧美日本久久| 亚洲韩日在线| 国产精品传媒麻豆hd| 亚洲一级二级| 国产精品久久久久77777丨| 欧美亚洲国产一区| 国产欧美一区二区色老头| 99精品视频在线| 欧美日韩91| 亚洲激情五月| 欧美精品97| 午夜在线视频观看日韩17c| 六月丁香综合在线视频| 九九综合在线| 精品国产午夜肉伦伦影院| 在线综合亚洲| 日韩av免费大片| 蜜臀精品久久久久久蜜臀| 亚洲欧洲高清| 欧美日本精品| 蘑菇福利视频一区播放| 国产传媒在线观看| 久久国产麻豆精品| 夜久久久久久| 亚洲美女久久精品| 久久国产免费看| 国产精品女主播一区二区三区| www.51av欧美视频| 91精品福利观看| 国产精品人人爽人人做我的可爱| 福利在线免费视频| 国产精品视频首页| 亚洲日韩中文字幕一区| 一区二区三区视频免费观看| 成人午夜在线| 国产精品videossex久久发布| 亚洲精品激情| 欧美资源在线| 2023国产精品久久久精品双| 久久97久久97精品免视看秋霞| 日本亚洲视频| 美女精品网站| 亚洲综合日本| 欧美日韩中文一区二区| 亚洲一级少妇| 日韩欧美1区| 国产精品精品国产一区二区| 国产精品白浆| 国产精品毛片aⅴ一区二区三区| 日韩精品免费一区二区夜夜嗨| 久久都是精品| 亚洲一区二区动漫| 最新亚洲激情| av亚洲在线观看| 久久精品二区三区| 久久夜夜操妹子| 亚洲www啪成人一区二区| av资源中文在线| 国产欧美精品| 欧美日韩一区二区国产 | 麻豆国产精品777777在线| 日本强好片久久久久久aaa| 亚洲v天堂v手机在线| 亚洲人成精品久久久| 一区二区电影| 免费看日韩精品| 免费看的黄色欧美网站| 亚洲在线电影| 老司机久久99久久精品播放免费| 99xxxx成人网| 午夜视频精品| 狠狠久久婷婷| 丝瓜av网站精品一区二区| 亚洲美洲欧洲综合国产一区| 黄色亚洲大片免费在线观看| 伊人成人网在线看| 久久不射中文字幕| 亚洲青青久久| 国产人成精品一区二区三| 国产精品99精品一区二区三区∴ | 欧美亚洲综合视频| 日韩中文av| 亚洲免费毛片| 日韩精品一区二区三区中文在线 | 国产精品巨作av| 久久精品三级| 国产粉嫩在线观看| 久久婷婷亚洲| 性色av一区二区怡红| 亚洲人成高清| 国产精品伦一区二区| 韩国女主播一区二区三区| 日韩免费视频| 夜久久久久久| 日韩高清欧美激情| 国产精品久久久久毛片大屁完整版| 国产精品毛片久久久| 国产伊人久久| 久久天堂精品| 亚洲精选91| 国产精品国码视频| 日韩一区三区| 亚洲欧美日韩视频二区| 日韩精品一级| 丰满少妇一区| 欧美日韩精品一本二本三本| 亚洲a级精品| 久久久久伊人| 国产字幕视频一区二区| 在线精品一区二区| 国产探花在线精品| 日韩在线短视频| 中文字幕免费一区二区| 欧美成人精品一级| 亚洲香蕉网站| 欧美精品中文字幕亚洲专区| 最近高清中文在线字幕在线观看1| 欧美天堂亚洲电影院在线观看| 日韩av中文字幕一区| 麻豆国产在线| 丝袜美腿一区二区三区| 另类欧美日韩国产在线| 亚洲欧洲一区| 麻豆国产精品一区二区三区| 亚洲精品一区二区妖精| 日本欧美韩国一区三区| 久久天堂av| 欧美午夜三级| 国产尤物精品| 国产乱论精品| 欧美大黑bbbbbbbbb在线| 青草久久视频| 久久久精品日韩| 日本成人在线不卡视频| 日韩电影免费网站| 天堂久久av| 91精品一区二区三区综合| 日本精品另类| 欧美成人精品三级网站| 18国产精品| 欧美性感美女一区二区| 欧美片第1页综合| 欧美日韩国产一区二区三区不卡| 久久国产三级| 亚洲精品1区2区| 国产一区二区三区91| 亚洲五月综合| 激情亚洲影院在线观看| 国产视频网站一区二区三区| 美女少妇全过程你懂的久久| 久久av网站| 亚洲a成人v|