持续更新。。。

参考了ramda官网和阮一峰老师的Ramda 函数库参考教程。

equals:比较两个值是否相等(支持对象的比较)

R.equals(1, 1); //=> true
R.equals(1, '1'); //=> false
R.equals([1, 2, 3], [1, 2, 3]); //=> truevar a = {}; a.v = a;
var b = {}; b.v = b;
R.equals(a, b); //=> true

either:接受两个函数作为参数,只要有一个返回true,就返回true,否则返回false。相当于||运算。

var gt10 = x => x > 10;
var even = x => x % 2 === 0;
var f = R.either(gt10, even);
f(101); //=> true
f(8); //=> true

both:接受两个函数作为参数,只有它们都返回true,才返回true,否则返回false,相当于&&运算。

var gt10 = R.gt(R.__, 10)
var lt20 = R.lt(R.__, 20)
var f = R.both(gt10, lt20);
f(15); //=> true
f(30); //=> false

allPass:接受一个函数数组作为参数,只有它们都返回true,才返回true,否则返回false。

var isQueen = R.propEq('rank', 'Q');
var isSpade = R.propEq('suit', '♠︎');
var isQueenOfSpades = R.allPass([isQueen, isSpade]);isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false
isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true

test:判断一个字符串是否匹配给定的正则表达式。

R.test(/^x/, 'xyz'); //=> true
R.test(/^y/, 'xyz'); //=> false

数组

contains:如果包含某个成员,返回true(类似于es6中的Array.includes)。

all:所有成员都满足指定函数时,返回true,否则返回false(类似于es5的Array.every)。

any:只要有一个成员满足条件,返回true(类似于es5中的some)。

none:没有成员满足时,返回true。

head:返回数组或者字符串的第一个成员,空数组会返回undefined。

R.head(['fi', 'fo', 'fum']); //=> 'fi'
R.head([]); //=> undefinedR.head('abc'); //=> 'a'
R.head(''); //=> ''

last

filter:过滤出符合条件的成员(类似于es5的Array.filter)。

without:返回指定值以外的成员。

R.without([1, 2])([1, 2, 1, 3, 4])
//=> [3, 4]

sortWith:按照给定的一组函数,进行多重排序。

var alice = {name: 'alice',age: 40
};
var bob = {name: 'bob',age: 30
};
var clara = {name: 'clara',age: 40
};
var people = [clara, bob, alice];
var ageNameSort = R.sortWith([R.descend(R.prop('age')),R.ascend(R.prop('name'))
]);
ageNameSort(people); //=> [alice, clara, bob]

groupBy:Splits a list into sub-lists stored in an object, based on the result of calling a String-returning function on each element, and grouping the results according to values returned.

把一个数组按照函数返回的结果分成多个数组存在一个对象中,该函数返回值为字符串。

var byGrade = R.groupBy(function(student) {var score = student.score;return score < 65 ? 'F' :score < 70 ? 'D' :score < 80 ? 'C' :score < 90 ? 'B' : 'A';
});
var students = [{name: 'Abby', score: 84},{name: 'Eddy', score: 58},// ...{name: 'Jack', score: 69}];
byGrade(students);
// {
//   'A': [{name: 'Dianne', score: 99}],
//   'B': [{name: 'Abby', score: 84}]
//   // ...,
//   'F': [{name: 'Eddy', score: 58}]
// }

zip:将两个数组指定位置的成员放在一起,生成一个新数组。

R.zip([1, 2, 3])(['a', 'b', 'c'])
//=> [[1, 'a'], [2, 'b'], [3, 'c']]

zipObj:将两个数组指定位置的成员分别作为键名和键值,生成一个新对象。

R.zipObj(['a', 'b', 'c'])([1, 2, 3])
//=> {a: 1, b: 2, c: 3}

findIndex:返回符合指定条件的成员的位置(类似es6中的Array.findIndex)。

mergeAll:将数组的成员合并成一个对象。

R.mergeAll([{foo:1},{bar:2},{baz:3}])
//=> {foo:1,bar:2,baz:3}R.mergeAll([{foo:1},{foo:2},{bar:2}])
//=> {foo:2, bar:2}

对象

has:返回一个布尔值,表示对象自身是否具有该属性。

hasIn:返回一个布尔值,表示对象自身或原型链上是否具有某个属性。

where:如果各个属性都符合指定条件,返回true。

var pred = R.where({a: R.equals('foo'),b: R.complement(R.equals('bar')),x: R.gt(__, 10),y: R.lt(__, 20)
});pred({a: 'foo', b: 'xxx', x: 11, y: 19}) //=> true
pred({a: 'xxx', b: 'xxx', x: 11, y: 19}) //=> false
pred({a: 'foo', b: 'bar', x: 11, y: 19}) //=> false
pred({a: 'foo', b: 'xxx', x: 10, y: 19}) //=> false
pred({a: 'foo', b: 'xxx', x: 11, y: 20}) //=> false

omit:过滤指定属性。

R.omit(['a', 'd'])({a: 1, b: 2, c: 3, d: 4})
//=> {b: 2, c: 3}

kk常用ramda函数总结相关推荐

  1. jQuery中常用的函数方法总结

    jQuery中为我们提供了很多有用的方法和属性,自己总结的一些常用的函数,方法.个人认为在www.21kaiyun.com的紫微斗数星座在线排盘开发中会比较常用的,仅供大家学习和参考. 事件处理 re ...

  2. R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析

    R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录

  3. R语言常用sys函数汇总:sys.chmod、Sys.Date、Sys.time、Sys.getenv、Sys.getlocale、sys.getpid、sys.glob、sys.info等

    R语言常用sys函数汇总:sys.chmod.Sys.Date.Sys.time.Sys.getenv.Sys.getlocale.sys.getpid.sys.glob.sys.info等 目录

  4. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  5. excel中最常用的30个函数_最常用日期函数汇总excel函数大全收藏篇

    在我们的实际工作中,经常需要用到日期函数.日期函数那么多,你还只会用函数TODAY吗?那你就OUT了.今天一起来看下常用日期函数的用法! 1.DATE 函数DATE:返回在日期时间代码中代表日期的数字 ...

  6. MapInfo中常用查询函数及用法

    MapInfo中常用查询函数及用法: 函数用途 语法 备注 图层中选点 Str$(obj)="point": Str(String)表示字符串:point表示点: 图层中选线 St ...

  7. loadrunner写脚本常用C函数

    loadrunner写脚本常用C函数 strcat的串连两个字串. strchr返回指向第一次出现的字符串中的字符. STRCMP比较两个字符串来确定的字母顺序. STRCPY一个字符串复制到另一个地 ...

  8. linux c数字转字符串函数,Linux常用C函数—字符串转换篇

    Linux 常用C 函数-字符串转换篇 atof (将字符串转换成浮点型数) 相关函数 atoi ,atol ,strtod ,strtol ,strtoul 定义函数 double atof(con ...

  9. SQL常用字符串函数

    SQL常用字符串函数 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用''括起来,但含其它字符的字符串必须用''括起来使用 ...

  10. SQL Server几个常用Date函数(二)

    在上一节SQL Server几个常用Date函数(一)中我们介绍了下表中前两个date函数,本节继续学习下面三个函数. 函数 描述 GETDATE() 返回当前日期和时间 CONVERT() 用不同的 ...

最新文章

  1. Android模拟自定义浏览器和打开另一个Ativity(06)
  2. seq2seq编码器和解码器:TensorFlow实现
  3. codeigniter钩子的使用
  4. NET问答: 如何让 HttpClient 支持 Http 2.0 协议?
  5. 在scrapy中parse函数里面xpath的内容打印不出来_如何正确的使用Scrapy ?
  6. 经典面试题(23):以下代码将输出的结果是什么?
  7. TensorFlow 第四步 多层神经网络 Mnist手写数字识别
  8. Android工程中三种库的区别:Private Libraries、Referenced Libraries、Dependency Libraries
  9. 3.8 激活函数的导数
  10. 华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)
  11. JAVA基础:从一道面试题看逻辑运算符与、|与||的区别
  12. py 操作Mysql数据库
  13. Atitit 集成之道 attilax著 1. 所谓系统集成(SI,System Integration), 1 2. 发展方向 1 2.1. 产品技术服务型 2 2.2. 系统咨询型 2 2.3.
  14. 什么叫0day和warez
  15. STM32F103红外遥控
  16. 40万奖金 | 阿里云天池第三届数据库性能大赛,广邀英才挑战创新上云
  17. 雷电模拟器通过命令行设置分辨率及其他命令
  18. 女生适合从事什么工作?程序员!
  19. (Java)学习笔记1---入门篇
  20. android相册管理系统下载安装,云象相册管理

热门文章

  1. 用python写生日快乐说说_生日快乐的说说(精选50句)
  2. 1024程序员节节日快乐
  3. 智能爆炸的真实(下)
  4. 人类一败涂地服务器不稳定,人类一败涂地崩溃怎么办 人类一败涂地游戏崩溃解决方法一览_游侠网...
  5. android 策略模式和代理模式,秒懂设计模式之策略模式(Strategy Pattern)
  6. Pr 入门教程如何减少音频中的噪音和混响?
  7. uniapp 引入第三方包发起网络数据请求
  8. python之 十进制与十二进制 相互转换~clash of coding
  9. Python pandas,pandas.series,series的主要方法
  10. android平板识别光驱,平板电脑看不了光盘?一个ORICO外置光驱就可以轻松搞定