所謂高階函數,就是函數中可以傳入另一個函數作為參數的函數。
簡單一張圖,方便理解全文。
function 高階函數(函數){}
這是一個高階函數,f是傳入的函數作為參數。
其實高階函數用的很多。其實平時也用,只是以前並不知道那叫高階函數。
js函數可以傳入變數,而函數也是一個變數,自然也是可以傳遞的。
如:
使用map(String)可以將數組的元素轉字元串化:
但是內部對象會變成[object Object],數組會變成逗號分隔字元串,整個函數也會變成字元串。一般最好只轉換基本類型元素。
當然也就有了map(Number),可以將字元串轉數字。引用類型直接變成NaN。如果字元串不是純數字也會變成NaN。
如:這是數組求和,將元素全部加起來,相當於1+2+3+4+5。
當然也有數組求差,相當於1-2-3-4-5。
如:篩選出數組中的奇數,%2不為0的就是奇數
篩選掉空字元串、null、undefined:
數組去重:
篩選條件:當前元素位置===數組該元素的第一個位置
x>y:從小到大
x<y:從大到小
重排序的數組還是原來的數組。
英文也可以排序:
中文也可以排序:
所以我的名字是根據ascii排序來的嗎?
推薦閱讀: