Tut*_*men 10 javascript pointfree ramda.js
虽然编写大写函数是微不足道的,但是:
"你好"=>"你好""你好"=>"你好"
如何使用Ramda JS使用无点样式编写它?
zer*_*kms 12
它会是这样的:
const capitalize = R.compose(
R.join(''),
R.juxt([R.compose(R.toUpper, R.head), R.tail])
);
Run Code Online (Sandbox Code Playgroud)
演示(在ramdajs.com REPL中).
以及处理null值的微小修改
const capitalize = R.compose(
R.join(''),
R.juxt([R.compose(R.toUpper, R.head), R.tail])
);
const capitalizeOrNull = R.ifElse(R.equals(null), R.identity, capitalize);
Run Code Online (Sandbox Code Playgroud)
lax*_*ike 11
您可以部分应用在第一个字符上replace运行的正则表达式toUpper:
const capitalize = R.replace(/^./, R.toUpper);
我建议使用R.lens:
const char0 = R.lens(R.head, R.useWith(R.concat, [R.identity, R.tail]));
R.over(char0, R.toUpper, 'ramda');
// => 'Ramda'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2783 次 |
| 最近记录: |