lodash的使用
Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库,内部封装了很多字符串、数组、对象等常见数据类型的处理函数。
为什么选择 Lodash ?
Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。Lodash 的模块化方法 非常适用于:
- 遍历 array、object 和 string
- 对值进行操作和检测
- 创建符合功能的函数
一、安装
浏览器环境,在页面的sript里直接引用lodash.js
<script src="lodash.js"></script>
通过 npm:
$ npm i --save lodash
二、引用
import * as _ from 'lodash'
然后就可以使用lodash的各种方法了
下面列举一些常用的lodash方法
_.range(10)
//生成元素为0到9的数组
_.times(10, (i)=>console.log(i))
//循环10次
_.uniqueId()
//生成不同的id,用于元素中的id值再好不过
_.startWith
//判断字符串是否以xx开头
_.endWith
//判断字符串是否以xx结尾
_.truncat
//截取指定长度后加… 用于处理标题过长再好不过
_.template
//es6有字符串模板的语法,而lodash是es5的替代方案
_.assign
//合并,es6有Object.assign,类似于jQuery.extend
_.assignIn
//lodash里很多方法带In的都是可枚举原型链上的属性
_.defaults
//安全合并,即忽略undefined/null的重写
_.findKey
//根据value的属性值找key
.mapKeys
//遍历重写key, 相当于.forIn
.mapValues
//遍历重写value , 相当于.forIn
_.invert
//反转映射,快速通过value值找key
_.omit
//返回移除部分属性的副本,比如提交表单时有些字段不要提交
_.pick
//与omit相反,提取部分属性的副本,比如只提交某些字段
_. clamp
//确认所给值只在min,max之间
_.max
//最大
_.min
//最小
_.sum
//求和
_.random
//生成随机数
_.round
//四舍五入,允许指定精确位数
_.isNumber
_.isInterger
_.isFunction
_.isPlainObject
_.isArray
_.isDate
_.isElement
_.isNil
//null or undefined
_.isEmpty
//{} or 空数组
_.isEqual
//支持对象和数组
_.isMatch
//匹配对象属性值
_.cloneDeep
//深度复制
_.clone
//浅复制
_.once
//只执行一次
_.before
//最多n-1次
_.after
//n次后执行
_.debounce
//忽略频繁执行
_.union
//合并两数组,去重
_.uniq
//去重
_.pull(array,element1,element2)
// 直接在array中移除元素,
_.without(array,element1,element2)
//得到新array中移除元素
_.remove(array, function)
//直接在array移除在function返回true的元素
_.sameple(array)
//随机取1
_.samepleSize(array, int)
// 随机取n
_.shuffle(array)
//乱序, jQuery.shuffle
_.find(array, function | object)
//根据function返回值和对象查找1个结果
_.filter(array, function | object)
//根据function返回值和对象查找多个结果
_.groupBy(array, string)
//分组,与多合一相反
_.keyBy(array, string)
//分组,类似groupBy, 但只有唯一值
_.countBy(array, string)
//分组统计
_.orderBy(array, array, array)
_.sortBy(array, array)
_.difference(array1,array2)
//找不同于array2,元素是Object用differenceBy
_.xor(array1,array2)
//得到非交集,元素是Object用xorBy
_.intersection(array1,array2)
//得到交集,元素是Object用intersectionBy
建议去自己读一下lodash官网,官网有实例可以帮助我们更好地理解一些方法的使用 https://www.lodashjs.com/
lodash的使用的更多相关文章
- 延迟求值-如何让Lo-Dash再提速x100?
「注释」作者在本文里没有说明这么一个事实: 目前的版本Lo-Dash v2.4.1并没有引入延迟求值的特性,Lo-Dash 3.0.0-pre中部分方法进行了引入,比如filter(),map(),r ...
- 函数式 js 接口实现原理,以及 lodash/fp 模块
函数式 js 接口 之前在 youtube 上看到一个技术视频,讲“underscore.js的接口为什么不好用”,以及什么样的接口更好用.演讲者是 lodash.js 的作者,他提出了一种“全面函数 ...
- lodash
lodash常用函数一 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- lodash 替换 underscore
不少知名项目都在用lodash替换underscore lodash Lazy evaluation 英文原文:http://filimanjaro.com/blog/2014/introducin ...
- JavaScript工具库之Lodash
你还在为JavaScript中的数据转换.匹配.查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很 ...
- inoic start projectname sidemenu报错 - Error: Cannot find module 'lodash._baseslice'
inoic start projectname sidemenu报错 - Error: Cannot find module 'lodash._baseslice' 在公司的电脑上出现过这个错误,后来 ...
- lodash链式使用
chain var _ = require('lodash'); var user1 = { name: 'zhangsan', height: 180, weight: 120 }; var use ...
- lodash常用方法1--查询
1.find var _ = require('lodash'); var user1 = { name: 'zhangsan', height: 180, weight: 120 }; var us ...
- 高性能的JavaScript库---Lodash
上周在仿做Nodejs社区的时候,遇到了lodash这个javascript库,很惭愧,那也是我第一次听说lodash.人嘛,对于新鲜的事物总是会或多或少感到些好奇的,于是就毫不犹豫地去lodash官 ...
- lodash源码(2)
1.flatten 对深层嵌套数组的抹平 _.flatten([1, [2, 3, [4]]]);* // => [1, 2, 3, [4]]** // using `isDeep`* _.fl ...
随机推荐
- 解决安装Ubuntu之后找不到无线网卡驱动的问题
为了不浇灭大家尝试ubuntu的冲动,昨天我安装了ubuntu 14.04 LTS版本号,从安装到又一次开机都非常顺利.PS:不会安装的请找教程区把,网上非常多,CSDN论坛都有. 安装之后当你奇妙的 ...
- Python 的数据表示
一.常量.变量和对象 1.常量:是指在程序的执行过程中不变的量.如:1,2,3,4,……,true.false 也有一些包含在模块中的用符号表示的常量,常用的如math模块中的pi和e,如: > ...
- EntityFramework.SqlServer.dll 中发生 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
解决方案: 1.打开Sql server 管理配置器 或者在命令行输入:SQLServerManager10.msc 2.点击MSSQLSERVER的协议,在右侧的页面中选择TCP/IP协议启用 3. ...
- spring揭秘读书笔记----spring的ioc容器之BeanFactory
spring的ioc容器是一种特殊的Ioc Service Provider(ioc服务提供者),如果把普通的ioc容器认为是工厂模式(其实很相似),那spring的ioc容器只是让这个工厂的功能更强 ...
- iOS:一个Cell中设置另外一个Cell中的button
场景: 子类化Cell中有button,拥有选中式样,点击第一个Cell中的button后,Cell一中的button获得选中式样.可是当点击Cell二中的button时.Cell一中的button选 ...
- Android - 返回上一个界面finish()方法
返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...
- Linux命令常用命令
查看主机IP ifconfig 切换目录 cd cd /home cd /path cd ../path cd 退到home目录 cd .. 退到上层目录 cd / 退到根目录 ls -l 列出数据 ...
- android studio中文乱码问题
在build.gradle中加入代码: tasks.withType(JavaCompile) { options.encoding = "UTF-8" }
- 使用httpClient发送get\post请求
maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId&g ...
- Java并发编程(二)为什么需要多线程
如果不考虑多线程的话,那么在程序只有一条执行路径,代码串行执行:顺序执行.选择或者循环.单线程就像你用你惯常的手去写字,多线程编程就要求你左手画圆,右手画方.一不留神就会手忙脚乱,圆不是圆,方也不像方 ...