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的使用的更多相关文章

  1. 延迟求值-如何让Lo-Dash再提速x100?

    「注释」作者在本文里没有说明这么一个事实: 目前的版本Lo-Dash v2.4.1并没有引入延迟求值的特性,Lo-Dash 3.0.0-pre中部分方法进行了引入,比如filter(),map(),r ...

  2. 函数式 js 接口实现原理,以及 lodash/fp 模块

    函数式 js 接口 之前在 youtube 上看到一个技术视频,讲“underscore.js的接口为什么不好用”,以及什么样的接口更好用.演讲者是 lodash.js 的作者,他提出了一种“全面函数 ...

  3. lodash

    lodash常用函数一 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  4. lodash 替换 underscore

    不少知名项目都在用lodash替换underscore lodash  Lazy evaluation 英文原文:http://filimanjaro.com/blog/2014/introducin ...

  5. JavaScript工具库之Lodash

    你还在为JavaScript中的数据转换.匹配.查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很 ...

  6. inoic start projectname sidemenu报错 - Error: Cannot find module 'lodash._baseslice'

    inoic start projectname sidemenu报错 - Error: Cannot find module 'lodash._baseslice' 在公司的电脑上出现过这个错误,后来 ...

  7. lodash链式使用

    chain var _ = require('lodash'); var user1 = { name: 'zhangsan', height: 180, weight: 120 }; var use ...

  8. lodash常用方法1--查询

    1.find var _ = require('lodash'); var user1 = { name: 'zhangsan', height: 180, weight: 120 }; var us ...

  9. 高性能的JavaScript库---Lodash

    上周在仿做Nodejs社区的时候,遇到了lodash这个javascript库,很惭愧,那也是我第一次听说lodash.人嘛,对于新鲜的事物总是会或多或少感到些好奇的,于是就毫不犹豫地去lodash官 ...

  10. lodash源码(2)

    1.flatten 对深层嵌套数组的抹平 _.flatten([1, [2, 3, [4]]]);* // => [1, 2, 3, [4]]** // using `isDeep`* _.fl ...

随机推荐

  1. linux入门基础——linux网络配置

    linux网络配置 以太网连接 在linux中,以太网接口被命名为:eth0.eth1等.0.1代表网卡编号 通过lspci命令能够查看网卡硬件信息(假设是usb网卡,则须要使用lsusb命令) 命令 ...

  2. Nginx通过CORS实现跨域(转)

    如果前端有nginx方向代理,跨域配置在前端反向代理nginx上 要做跨域域名限制 什么是CORS CORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource shari ...

  3. tony_CENTOS启动方式设置

    方法: 在etc文件夹下面有个初始加载文件是用来启动系统的,系统在启动的时候先去env中找到shell的必要配置,然后把shell启动起来,那么再然后就要启动整个系统了,到底是启动图形界面呢,还是字符 ...

  4. unity, iOS下画面错乱解法

    unity版本号为5.1.1f1 Personal 在ipod5,系统为iOS7.1上测试.发现下面两种出现画面错乱的问题: 一,退后台在返回前台时画面发生错乱(错乱持续一两秒,然后变为正常).   ...

  5. Xcode7中你一定要知道的炸裂调试神技【转载】

    Xcode7中苹果为我们增加了两个重要的debug相关功能.了解之后觉得非常实用,介绍给大家. 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS EXC_BAD ...

  6. Emoji表情图标在iOS与PHP之间通信及MySQL存储

    在某个 iOS 项目中,需要一个服务器来保存一些用户数据,例如用户信息.评论等,我们的服务器端使用了 PHP+MySQL 的搭配.在测试过程中我们发现,用户在 iOS 端里输入了 Emoji 表情提交 ...

  7. spring 整合mybatis 学习笔记

    1.1 环境准备 java环境: jdk1.7.0_72 eclipse indigo springmvc版本:spring3.2  所需要的jar包: 数据库驱动包:mysql5.1 mybatis ...

  8. dm8148 开发之---IDR帧

    IDR帧属于I帧. 解码器收到IDR帧时,将所有的参考帧队列丢弃(用x264_reference_reset函 数实现——在encoder.c文件中).这点是所有I帧共有的特性,但是收到IDR帧 时, ...

  9. hdu5334(2015多校4)--Virtual Participation(构造)

    题目链接:pid=5334">点击打开链接 题目大意:给出一个数字k,要求做出一个长度小于等于10^5的序列.该序列中不同样的连续子序列有k个. 构造啊,.,,,,一点辙都没有 使用连 ...

  10. iOS 集成阿里百川最新版(3.1.1.96) 实现淘宝授权登录以及调用淘宝客户端商品详情页

      公司最近要做第三方登录,由于是做导购项目,必不可少的有淘宝的授权登录.本来就是一个授权登录,没什么大不了的.但淘宝的无线开放业务——阿里百川更新的最新版本3.1.1.96,开发文档不是不详细,是很 ...