js工具库Ramda和lodash和underscore用法对比
lodash和underscore
Lodash 作为 Underscore 的后继者,除了对 Underscore 现有 API 功能使用上进行扩充外,更是添加了不少令人难忘的 API,在性能上也更为出彩,而且还能根据需要构建自己的子集方法。所以他两推荐用lodash
lodash和Ramda
var _ = require("lodash");
var R = require("ramda");var companies = [{ name: "tw", since: 1993 },{ name: "pucrs", since: 1930 },{ name: "tw br", since: 2009 }
];var r1 = _(companies).chain().filter(function(c) {return c.name.split(" ")[0] === "tw";}).map(function(c) {return {name: c.name.toUpperCase(),since: c.since};}).sortBy(function(c) {return c.since;}).reverse().value();console.log("with lodash:", r1);var r2 = R.compose(R.reverse,R.sortBy(R.prop("since")),R.map(R.over(R.lensProp("name"), R.toUpper)),R.filter(R.where({ name: R.test(/^tw/) }))
)(companies);console.log("with ramda:", r2);
显然Ramda写起来更加简洁,因为他是函数式编程,但是理解比较麻烦,有一定学习成本。
js工具库Ramda和lodash和underscore用法对比相关推荐
- 10个常用的JS工具库
10个常用的JS工具库,80%的项目都在用! Avue Cloud 2022-01-26 09:46 图片 高手区别于普通人的重要一点是,他们善于利用工具,把更多的时间留给了规划和思考.写代码也是同样 ...
- 当前最流行的 js 工具库
高手区别于普通人的重要一点是,他们善于利用工具,把更多的时间留给了规划和思考.写代码也是同样的道理,工具用好了,你就有更多的时间来规划架构和攻克难点.今天就给大家分享一下当前最流行的 js 工具库,如 ...
- JavaScript进阶学习(二)—— 基于原型链继承的js工具库的实现方法
文章来源:小青年原创 发布时间:2016-07-03 关键词:JavaScript,原型链,jQuery类库 转载需标注本文原始地址: http://zhaomenghuan.github.io... ...
- JS工具库moment —— 实现日历
moment moment是一个js工具库,这个库中封装的是日期时间的方法,功能很全面.可以去moment官网看看,它的中文文档介绍的也很详细,主要是看一下方法的使用.附上官网地址:moment.js ...
- JS工具库之Lodash用法005 _.difference(),_.differenceBy()_.differenceWith()
_.difference(array, [values]) 创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中.(注:即创建一个新数组,这个数组中的值,为第一个数字(array 参数 ...
- 分享7个实用又高效的 Node.js 工具库
使用这7个库,加速你的项目开发 当今的软件开发行业,充斥着大量的库和框架,为开发人员提供了极大的便利性和效率.其中,JavaScript 库是最为广泛和重要的一类库之一,它们为开发人员提供了丰富的功能 ...
- js 工具库 Loadsh 常用方法:filter +slice + orderBy
1. Loadsh是什么: let json = _.map(datas); 你会很疑问下划线"_"是什么,其实可以认为是Loadsh库的一个对象,这样就可以使用Loadsh库的各 ...
- uView JS工具库
节流防抖 节流 throttle(func, wait = 500, immediate = true) 规定时间内,只触发一次,可以通过设置immediate来决定触发的时机在这个时间的开始,还是结 ...
- 前端算法utils.js工具库封装【收藏版】
剑阁峥嵘而崔嵬,一夫当关,万夫莫开 –‰
- underscore javascript工具库支持seajs模块化
underscore是一个很有用的js工具库,但是好像默认不支持seajs模块化 新建一个文件例如叫做xx.js 谈后,键入 define(function(require,exports,modul ...
最新文章
- java maven 开发环境_Maven 搭建开发环境
- MySQL高级 - 日志 - 慢查询日志
- 计算机原理及应用课程,课程介绍
- list取数据_Day.5利用Pandas做数据处理(二)
- InstallSheild 获取系统环境变量,如Desktop路径等
- python常用文本处理功能
- TLS协议、PKI、CA
- 【资源】16个在线机器学习视频与教程
- 服装智能制造开启服装企业信息化建设
- Cpp Careless Tony
- mysql8 Record Locks ,Gap Locks, Next-Key Locks实验2 唯一索引和非唯一索引,无索引情况
- 利用匿名管道实现远程CMD---我的解读
- 微软表示今年员工不要参与愚人节活动!怕玩笑过大得不偿失
- Oracle中表的键和检查,Oracle 过程中检查数据表存在与否
- js通过IP地址获取所在城市
- 浅谈数据的查找(二分查找)
- 地理计算 | 计算两个坐标点射线的交点(前方交会)
- pycharm安装Translation翻译插件
- 关于代码动态修改xib内控件尺寸
- 移动端开发常用的vue组件
热门文章
- 「3D建模」建模中什么是重新拓补?为什么要拓补,有何作用?
- python京东抢购 github_GitHub - DevGuan/jd-autobuy: Python爬虫,京东自动登录,在线抢购商品...
- app开发前后端简易流程图
- MacOS删除开机启动项
- 《概率论与数理统计》——分布函数的概念及性质
- openGauss开机自启动
- sprintf左右对齐
- 定义一个类描述分数,并提供加减乘除运算 以及分数化简
- DO Global亮相DMEXCO 2018,发布全新智能DSP
- Android MTK 预制应用遇到的问题