最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript 常見的高階函數(shù)詳情

 更新時(shí)間:2021年09月28日 10:54:00   作者:前端人  
這篇文章主要介紹了Javascript 常見的高階函數(shù)的相關(guān)資料,高階函數(shù),英文叫 Higher Order function。一個(gè)函數(shù)可以接收另外一個(gè)函數(shù)作為參數(shù),這種函數(shù)就叫做高階函數(shù),需要的朋友可以參考一下

高階函數(shù),英文叫 Higher Order function。一個(gè)函數(shù)可以接收另外一個(gè)函數(shù)作為參數(shù),這種函數(shù)就叫做高階函數(shù)。

示例:

function add(x, y, f) {
 return f(x) + f(y);
}

//用代碼驗(yàn)證一下:
add(-5, 6, Math.abs); // 11

一、常見的高階函數(shù)

ES6中數(shù)組新增了幾種方法,其中 mapreduce、filter 幾個(gè)都是高階函數(shù),除此,普通的sort也是高階函數(shù)。分別介紹下新增的三個(gè)方法。

1.1、filter

filter 是過濾數(shù)組,返回滿足條件的數(shù)據(jù),組成一個(gè)新的數(shù)組返回,不滿足條件的被丟棄。

實(shí)例1:取出數(shù)組中小于 100 的數(shù)據(jù),放到一個(gè)新數(shù)組中

let grad = [ 102, 188, 55, 66, 200, 800 ]
let arr2 = grad.filter( function(item){
 return item <= 100
})
console.log("arr2",arr2)// 55, 66

上述實(shí)例中,filter傳入的參數(shù)是一個(gè)函數(shù),傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是 true false 決定保留還是丟棄元素。因?yàn)橹挥?55 66 兩個(gè)滿足條件,所以新的數(shù)組中只有這兩個(gè)元素。

1.2、map

map 是映射的意思。

原數(shù)組被映射成一個(gè)新的數(shù)組,返回值是一個(gè)新數(shù)組,不改變原來的數(shù)組。新的數(shù)組與原數(shù)組的長度是不會(huì)改變的。

實(shí)例2:給數(shù)據(jù)每個(gè)元素放大 2 倍。

let arr2 = [ 55, 66 ]
let arr3 = arr2.map( item => {
 return item*2
})
//返回結(jié)果 [ 110, 132 ]

上述實(shí)例,map接收的參數(shù)是一個(gè)函數(shù),該函數(shù)依次作用于每個(gè)元素,對元素放大了2倍,也可以對其進(jìn)行任意的復(fù)雜操作。

1.3、reduce

reduce 是對數(shù)組進(jìn)行匯總的,往往進(jìn)去一個(gè)數(shù)組,出來是一個(gè)數(shù)據(jù)。經(jīng)常用于求和和計(jì)算平均值。

實(shí)例3:對上個(gè)實(shí)例返回的結(jié)果進(jìn)行求和。

let sum = arr3.reduce((tmp,item)=>{
 return tmp+item
})
//返回結(jié)果 242

重點(diǎn)來了,如果我們想把上邊三個(gè)實(shí)例合并到一起執(zhí)行,最終我們可以寫得有多簡單呢?

負(fù)責(zé)寫法:

// 復(fù)雜寫法
let grad = [102,188,55,66,200,800]
let arr2 = grad.filter(function(item){
 return item <= 100
})
let arr3 = arr2.map(item=>{
 return item*2
})
let sum = arr3.reduce((tmp,item)=>{
 return tmp+item
})

簡單寫法:

//簡單寫法
let sum2 = grad
           .filter( item => {return item <= 100})
          .map(item=>{return item*2})
          .reduce((tmp,item)=>{return tmp+item})

到此這篇關(guān)于Javascript 常見的高階函數(shù)詳情的文章就介紹到這了,更多相關(guān)Javascript 常見的高階函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

五原县| 汶上县| 隆安县| 滨州市| 新源县| 岫岩| 黄梅县| 巨鹿县| 丹棱县| 瓦房店市| 友谊县| 新宁县| 军事| 封开县| 绍兴县| 嘉义县| 肇州县| 泽州县| 阿巴嘎旗| 汝城县| 襄垣县| 盐山县| 南阳市| 外汇| 阿克苏市| 南澳县| 平阳县| 凤山县| 仙游县| 北宁市| 吐鲁番市| 色达县| 南昌县| 南昌市| 宝清县| 万盛区| 观塘区| 阿鲁科尔沁旗| 涟水县| 阜宁县| 海南省|