Lodash.js:实用的工具库
Lodash.js:实用的工具库
如官方所介绍的那样,Lodash是一个具有一致接口、模块化、高性能的JavaScript工具库。一开始Lodash只是Underscore.js的一个fork,之后再原有的成功基础上取得了更大的成果,lodash的性能远远的超过了Underscore。因此,很多模块放弃了Underscore转入Lodash的怀抱。目前,lodash是npm仓库中依赖最多的库。使用lodash的全部函数需要使用全局的_
就像是使用jQuery
的函数前加上全局的$
一样。lodash的使用极大的减少了你的代码量以及编写代码时间。[附上lodash的API文档](http://lodashjs.com/docs/) ]
循环
// 典型的循环写法
for(let i = 0;i < 5;i++){//todo
}// lodash写法
_.times(5,()=>{//todo
})
相比较,lodash的写法更为简洁,更加的直观易用。
过滤
_.compact([0,1,false,2,'',underfined,3])
// => [1,2,3]
直接通过一个函数删选掉所有假值的数据,比寻常的遍历更加方便。
var arr1 = [1,2,3,4]
var arr2 = _.remove(arr1,(n) => {return n%2 == 0
})//arr1 => [1,3]
//arr2 => [2,4]
通过_.remove() 的方法删选出了符合条件的数组元素,并构成一个新数组,同时对原数组进行了去除改元素的操作。
迭代
var arr = [{name: 'linge',son: [{name: 'liu'},{name: 'chen'}]
},{name: 'huangxiaoshu',son: [{name: 'diao'},{name: 'xu'}]
}]_.map(arr,'name') //['linge','huangxiaoshu']
_.map(arr,'son[0].name') //['liu','diao']
lodash中map的方法也是异常强大,它即可以用_.map(arr,()=>{//todo})
如同原生js的形式对数组进行迭代,另外lodash中map方法能够遍历深度嵌套的对象属性,这一点在实际开发的时候是非常有用的。
对象扩展
//Lodash
_.assign({name: 'shidiao',age: 38},{sex: 'famale'},{name: 'liushitao'})
//ES6新增函数
Object.assign({name: 'shidiao',age: 38},{sex: 'famale'},{name: 'liushitao'})
//{name: 'liushitao',age: 38,sex: 'female'}
lodash中的_.assign只是浅拷贝,这与ES6新增的函数Object.assign
功能重复了
个人建议优先使用
Object.assign
深度克隆
个人认为深度克隆是lodash里面最好用的函数之一。众所周知,深度克隆JavaScript对象是挺麻烦的事情,但是lodash一个简简单单的_.cloneDeep
方法帮你完成了繁琐的深度克隆操作,使用_.clone(obj,true)
也能起到相同的作用,但是_.clone能够指定深度克隆的层级。
var obj = {name: 'linge',son: [{name: 'liu'},{name: 'chen'}]
};
var deep = _.cloneDeep(obj);
obj === deep //false
另外分享一篇文章深入剖析JavaScript的深复制
删选对象属性
var obj = {name: 'linge',age: 20
}_.omit(obj, 'age') // {name: 'linge'}
这个方法在实际的开发项目中也相当实用,值得注意的是_.omit
返回了一个新的数组,并不改变原数组。与_.omit
相反_.pick
方法可以挑选出指定的属性,组成一个新数组。
总结
总的来说,lodash还是非常实用的,它让代码看上去更加精简,不至于很臃肿,提高了代码的可读性以及逻辑性。虽然部分的方法以及可以被ES6的新方法进行代替,但丝毫掩盖不了它的价值。
本文同步自个人小站,欢迎点击
Lodash.js:实用的工具库相关推荐
- 60+ 实用 React 工具库,助力你高效开发!
大家好,我是若川.持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列& ...
- 抖之恒科技python常用库之工具库schema
在Python编程语言中,有众多的开源库可以帮助程序员更加高效地完成各种任务.其中,Schema就是一款非常实用的工具库之一.本文将为您介绍Schema库的基本概念.使用方法以及它在Python编程中 ...
- 10个常用的JS工具库
10个常用的JS工具库,80%的项目都在用! Avue Cloud 2022-01-26 09:46 图片 高手区别于普通人的重要一点是,他们善于利用工具,把更多的时间留给了规划和思考.写代码也是同样 ...
- 当前最流行的 js 工具库
高手区别于普通人的重要一点是,他们善于利用工具,把更多的时间留给了规划和思考.写代码也是同样的道理,工具用好了,你就有更多的时间来规划架构和攻克难点.今天就给大家分享一下当前最流行的 js 工具库,如 ...
- 【JavaScript工具库】Lodash
JS使用工具库:Lodash 作用:高效处理array.number.objects.string等对象,降低JS操作难度 特点:不会影响原实例对象,返回操作后的结果或新对象,语义化程度高 例如: 数 ...
- Licia:最全最实用的 JavaScript 工具库
前言 在业务开发过程中,我们经常会重复使用日期格式化.cookie 操作.模板.浏览器判断.类型判断等功能.为了避免不同项目之间进行复制粘贴,可以将这些常用的函数封装到一起并发布 npm 包.在将近三 ...
- Lodash-一个一致性、模块化、高性能的 JavaScript 实用工具库介绍
官网:https://www.lodashjs.com 一.为什么选择 Lodash ? Lodash 通过降低 array.number.objects.string 等等的使用难度从而让 Java ...
- JS工具库moment —— 实现日历
moment moment是一个js工具库,这个库中封装的是日期时间的方法,功能很全面.可以去moment官网看看,它的中文文档介绍的也很详细,主要是看一下方法的使用.附上官网地址:moment.js ...
- 开发知识竞赛答题活动小程序过程中使用到的实用工具库介绍
前言 我在做知识竞赛答题活动小程序经常需要处理一些比较基础的事情,比如时间.数组.数字.对象.字符串等处理,自己造轮子的话成本会比较高.这时候我们可以去找一些别人已经写好的开源模块或者开源库,我们直接 ...
最新文章
- ExtJs学习笔记(5)_Ajax示例
- python中 __name__及__main()__的妙处
- 【Linux】一步一步学Linux——lastlog命令(100)
- 模仿网易(163)首页Ajax功能中的鼠标延时触发
- linux python开发环境sql数据迁移到mysql_运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库...
- linux grep awk head 的使用
- 【手绘】A old painting ,drawed in middle school ,grade 8
- 安卓使用html文件遍历,安卓手机中使用html的input file,获取不到文件类型和文件名...
- 逍遥单机卡系统服务器ip,逍遥剑侠情缘私服架设源码+APP端+搭建教程
- 2022年2月沪牌拍牌出价策略
- 【戒焦戒躁,can win】Linux--IO缓冲区
- Java反射--获取类方法的泛型返回或泛型参数
- SQL必知必会 - 创建表的联结
- 谈谈三次握手四次挥手
- fedora 下常用软件安装
- n与9n--char3
- 你想要的宏基因组-微生物组知识全在这(2022.12)
- Vue解决SEO的方案
- 使用FLuke福禄克MicroScanner2 POE(MS-POE)检测以太网供电
- 怎么知道你训练的靠不靠谱?yolov3的mAP计算教程来了
热门文章
- python3 for index_Python3 抓取数据报错IndexError: list index out of range
- InterSystem Ensemble: BS- BP- BO
- 中国就业薪酬最高的十所大学
- 神经网络学习小记录39——MobileNetV3(small)模型的复现详解
- mysql所有任务为灰色_MySQL权限体系任务事理
- 《Android登堂入室》系列之Android的前世后生
- python实现翻转直角三角形
- Python selenium与pyautogui控制浏览器实现modis数据自动下载
- Kali2021.1 关于w3af的一些问题
- 电商系统中微服务体系中的分层设计和领域划分