Point Free:把数据处理的过程定义成与数据无关的合成运算,不需要用到代表数据的那个参数,只要把简单的运算步骤合成到一起,在使用这种模式之前我们需要定义一些辅助的基本运算函数。
- 不需要指明处理的数据
- 只需要合成运算过程
- 需要定义一些辅助的基本运算函数
const f=fp.flowRight(fp.join('-'),fp.map(_.toLower),fp.split(' '));
案例
//非point free
//Hello Word=>hello_world
function f(word){
return word.toLowerCase().replace(/\s+/g,'_');
}
//全转化为小写,匹配空格 替换为——
//point Free
const fp=require('lodash/fp');
const f=fp.flowRight(fp.replace(/\s+/g,'_'),fp.toLower);
console.log(f('Hello World'));
//把一个字符串中的首字母提取并转换成大写,使用.作为分隔符
const fp=require('lodash/fp');
const firstLetterToUpper=fp.flowRight(fp.join('. ',fp.map(fp.first),fp.map(toUpper),fp.split(' '));
console.log(firstLetterToUpper("world wild web"));
优化
//把一个字符串中的首字母提取并转换成大写,使用.作为分隔符
const fp=require('lodash/fp');
const firstLetterToUpper=fp.flowRight(fp.join('. ',fp.map(fp.flowRight(fp.first,fp.toUpper)),fp.split(' '));
console.log(firstLetterToUpper("world wild web"));