js 函数式编程:不要再使用 for 循环啦,试试 map 吧
js 函數(shù)式編程
:不要再使用 for 循環(huán)啦,試試 map 吧
楔子
在 JavaScript 中,由于 Function 本質(zhì)也是對象(這與 Haskell 中【函數(shù)的本質(zhì)是值】思路一致),所以我們可以把 Function 作為參數(shù)來進行傳遞!
例 :
function sayHi() { console.log("Hi");}function sayBye() { console.log("Bye");}function greet(type, sayHi, sayBye) { type === 1 ? sayHi() : sayBye()}greet(1, sayHi, sayBye); // Hi又得講這個老生常談的定義:如果一個函數(shù)“接收函數(shù)作為參數(shù)”或“返回函數(shù)作為輸出”,那么這個函數(shù)被稱作“高階函數(shù)”;
本篇要談的是:高階函數(shù)中的 map、filter、reduce 是【如何實踐】的,我愿稱之為:高階映射!!
先別覺得這東西陌生,其實咱們天天都見 !!
例:
[1,2,3].map(item =>item*2)實踐
Talk is cheap. Show me the code.
以下有 4 組代碼,每組的 2 個代碼片段實現(xiàn)目標一致 ,但實現(xiàn)方式有異