ramda笔记

1.记API

1.all方法,如果列表数据里面每一个项都满足predicate的话,那么返回true。

1
2
3
4
5
import * as R from "ramda";

const equals3 = R.equals(3);

const result1: boolean = R.all(equals3)([3,3]); // true

2.allPass方法,相比all方法,allPass方法可以接受多个predicate,只有所有predicate都满足要求的时候才会返回true。

1
2
3
4
5
const isQueue = R.propEq("rank", "Q");
const isKing = R.propEq("pos", "K");

const isOwner = R.allPass(isQueue, isKing);
isOwner({ rank: "Q", pos: "K" }); // true

3.和all,allPass相对应的就是any,anyPass。使用方法同理。只有有一个满足即可。

4.ap操作符:将函数列表作用域值列表上面。

1
2
3
const operations: any[] = [ R.concat("cool"), R.toUpper ];
const datas: string[] = [ "fp", "js" ];
const result: stringp[] = R.ap(operations, datas); // [ 'coolfp', 'cooljs', 'FP', 'JS' ]

5.append方法:在末尾进行拼接:

1
2
const step1 = R.append("test");
step1(["ok"]); // ["ok", "test"]