今天在微博上看到了 有人分享了下面的這段函數式代碼,我把代碼貼到下面,不過我對原來的代碼略有改動,對于函數式的版本,咋一看,的確令人非常費解,仔細看一下,你可能就暈掉了,似乎完全就是天書,看上去非常裝逼,哈哈。不過,我感覺解析那段函數式的代碼可能會一個比較有趣過程,而且,我以前寫過一篇《函數式編程》的入門式的文章,正好可以用這個例子,再升華一下原來的那篇文章,順便可以向大家更好的介紹很多基礎知識,所以寫下這篇文章。
先看代碼
這個代碼平淡無奇,就是從一個數組中找到一個數,O(n)的算法,找不到就返回 null。
下面是正常的 old-school 的方式。不用多說。
function find (x, y) { for ( let i = 0; i < x.length; i++ ) { if ( x[i] == y ) return i;
} return null;
} let arr = [0,1,2,3,4,5] console.log(find(arr, 2)) console.log(find(arr, 8))