所謂高階函數,就是函數中可以傳入另一個函數作為參數的函數。

簡單一張圖,方便理解全文。

function 高階函數(函數){}

這是一個高階函數,f是傳入的函數作為參數。

其實高階函數用的很多。其實平時也用,只是以前並不知道那叫高階函數。

js函數可以傳入變數,而函數也是一個變數,自然也是可以傳遞的。

如:

map:一般用於操作數組集合,遍歷操作用。

使用map(String)可以將數組的元素轉字元串化:

但是內部對象會變成[object Object],數組會變成逗號分隔字元串,整個函數也會變成字元串。一般最好只轉換基本類型元素。

當然也就有了map(Number),可以將字元串轉數字。引用類型直接變成NaN。如果字元串不是純數字也會變成NaN。

reduce:數組元素計算。

如:這是數組求和,將元素全部加起來,相當於1+2+3+4+5。

當然也有數組求差,相當於1-2-3-4-5。

filter:篩選元素用。返回數組元素的判斷(boolean):

如:篩選出數組中的奇數,%2不為0的就是奇數

篩選掉空字元串、null、undefined:

數組去重:

篩選條件:當前元素位置===數組該元素的第一個位置

sort:數組重排序。返回同一個數組對象。根據ascii碼進行排序。

x>y:從小到大

x<y:從大到小

重排序的數組還是原來的數組。

英文也可以排序:

中文也可以排序:

所以我的名字是根據ascii排序來的嗎?

推薦閱讀:

相关文章