vlambda博客
学习文章列表

函数式编程的初次见面


 function double(arrIn) { let arrOut = []; for (let i = 0; i < arrIn.length; i++) { arrOut[i] = arrIn[i] * 2; } return arrOut; }

function increment(arrIn) { let arrOut = []; for (let i = 0; i < arrIn.length; i++) { arrOut[i] = arrIn[i] + 1; } return arrOut; }

function foo(arrIn) { return increment(double(arrIn)); }
foo([1,2,3])



上边的三个函数,进行优化后


 let double = (arrIn)=>arrIn.map((item) => item * 2); let increment= (arrIn)=>arrIn.map((item) => item + 1);  let foo = (arrIn)=>increment(double(arrIn));


发现了组合函数,最终结果

 let double = (arrIn)=>arrIn.map((item) => item * 2); let increment= (arrIn)=>arrIn.map((item) => item + 1); let foo = (f, g) => (x => f(g(x))); foo(increment,double)([1,2,3])


所以有些时候,每个方法好好思考下,如何简化,能有更优的写法。希望大家每个方法都好好的思考哟。



欢迎关注

点个在看,支持小编