日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊聊Javascript常見的高階函數(shù)

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

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、蘭坪網(wǎng)站維護、網(wǎng)站推廣。

示例:

 
 
 
  1. function add(x, y, f) {
  2.  return f(x) + f(y);
  3. }
  4. //用代碼驗證一下:
  5. add(-5, 6, Math.abs); // 11

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

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

1.1、filter

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

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

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

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

1.2、map

map 是映射的意思。

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

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

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

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

1.3、reduce

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

實例3:對上個實例返回的結(jié)果進行求和。

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

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

 
 
 
  1. // 復(fù)雜寫法
  2. let grad = [102,188,55,66,200,800]
  3. let arr2 = grad.filter(function(item){
  4.  return item <= 100
  5. })
  6. let arr3 = arr2.map(item=>{
  7.  return item*2
  8. })
  9. let sum = arr3.reduce((tmp,item)=>{
  10.  return tmp+item
  11. })
  12. //簡單寫法
  13. let sum2 = grad
  14.            .filter( item => {return item <= 100})
  15.           .map(item=>{return item*2})
  16.           .reduce((tmp,item)=>{return tmp+item})

網(wǎng)站題目:聊聊Javascript常見的高階函數(shù)
鏈接URL:http://www.5511xx.com/article/dhojcgh.html