函数式编程的初次见面
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])
所以有些时候,每个方法好好思考下,如何简化,能有更优的写法。希望大家每个方法都好好的思考哟。
欢迎关注
点个在看,支持小编
