今天在微博上看到了 有人分享了下面的這段函數(shù)式代碼,我把代碼貼到下面,不過(guò)我對(duì)原來(lái)的代碼略有改動(dòng),對(duì)于函數(shù)式的版本,咋一看,的確令人非常費(fèi)解,仔細(xì)看一下,你可能就暈掉了,似乎完全就是天書(shū),看上去非常裝逼,哈哈。不過(guò),我感覺(jué)解析那段函數(shù)式的代碼可能會(huì)一個(gè)比較有趣過(guò)程,而且,我以前寫(xiě)過(guò)一篇《函數(shù)式編程》的入門(mén)式的文章,正好可以用這個(gè)例子,再升華一下原來(lái)的那篇文章,順便可以向大家更好的介紹很多基礎(chǔ)知識(shí),所以寫(xiě)下這篇文章。
先看代碼
這個(gè)代碼平淡無(wú)奇,就是從一個(gè)數(shù)組中找到一個(gè)數(shù),O(n)的算法,找不到就返回 null。
下面是正常的 old-school 的方式。不用多說(shuō)。
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))