大家好,最近,我在学习Lodash这个工具库。Lodash最初是 Underscore
的分支,后来逐渐壮大后自立门户。Lodash 功能比 Underscore 更丰富,且 Underscore 已有3、4年没有更新,所以推荐使用 Loadash。但是和原生相比还是推荐使用ES6等。
所以我们一起来学习Lodash,今天打卡第二天,加油!
目录
1.前言
Lodash 和 Underscore 是非常优秀的当代JavaScript的工具集合框架,它们被前端开发者广泛地使用。但是,当我们现在是针对现代化浏览器进行开发时,很多时候我们利用的Underscore中的方法已经被ES5与ES6所支持了,如果我们希望我们的项目尽可能地减少依赖的话,我们可以根据目标浏览器来选择不用Lodash或者Underscore。
2 常见用法
在这部分我们介绍一些 Lodash 的常见的优雅的用法。主要是引起大家的学习兴趣,有更多优雅用法等待大家去发现。
_.random 随机数
// Naive utility method
function getRandomNumber(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
getRandomNumber(15, 20);
// Lodash
_.random(15, 20);
_.get
获取一个嵌套很深的字段
//config 初始化为 null,需要从服务器端获取权限数据
let config = null;
ajax.get(url, function(data) {
// data = {basic: {delete: true}}
config = data;
});
//使用原生JS获取是否有删除权限
let isDeletable = false;
if (config && config.basic) {
isDeletable = config.basic.delete || false;
}
//使用lodash获取是否有删除权限
let isDeletable = _.get(config, 'basic.delete', false);
_.map
获取数组中每个对象的特定字段,并形成一个新的数组对应地,可以通过_.set({}, 'a.b.c', 1)
创建一个多级嵌套的对象。
//使用所有用户的 idCard 字段创建出一个数组
let users = [{ idCard: '20160512', name: '张三' }, { idCard: '20160513', name: '李四' }];
//使用原生JS
let idCards = users.map(function(user) {
return user.idCard;
});
//使用lodash
l