首页IT科技lodash作用(Lodash 使用及常用方法)

lodash作用(Lodash 使用及常用方法)

时间2025-09-19 13:32:52分类IT科技浏览6980
导读:简介 Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数,Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。...

简介

Lodash 是一个一致性                 、模块化                         、高性能的 JavaScript 实用工具库                 。它内部封装了诸多对字符串         、数组                 、对象等常见数据类型的处理函数,Lodash 通过降低 array                         、number         、objects        、string 等等的使用难度从而让 JavaScript 变得更简单                         。

官网

Lodash 简介 | Lodash 中文文档 | Lodash 中文网

Array:适用于数组类型                 ,比如填充数据                         、查找元素                 、数组分片等操作 Collection:适用于数组和对象类型                         ,部分适用于字符串         ,比如分组        、查找                         、过滤等操作 Function:适用于函数类型                 ,比如节流                 、延迟、缓存                         、设置钩子等操作 Lang:普遍适用于各种类型                         ,常用于执行类型判断和类型转换 Math:适用于数值类型         ,常用于执行数学运算 Number:适用于生成随机数        ,比较数值与数值区间的关系 Object:适用于对象类型                         ,常用于对象的创建                         、扩展、类型转换                 、检索                         、集合等操作 Seq:常用于创建链式调用                 ,提高执行性能(惰性计算) String:适用于字符串类型

使用

1         、首先通过npm全局安装ladash

npm i -save lodash \\全局安装

2                 、按需引入了如下方法:

方法一: import _get from lodash/get import _map from lodash/map import _uniq from lodash/uniq import _pick from lodash/pick import _omit from lodash/omit import _isNaN from lodash/isNaN import _property from lodash/property import _findIndex from lodash/findIndex import _isUndefined from lodash/isUndefined import _isString from lodash/isString import _debounce from lodash/debounce 方法二: import {debounce, isString, isUndefined, isNaN, map} from lodash

常见方法

_.chunk(array, [size=1])

含义:将数组(array)拆分成多个 size 长度的区块        ,并将这些区块组成一个新数组         。

例子:

_.chunk([a, b, c, d], 2); // => [[a, b], [c, d]] _.chunk([a, b, c, d], 3); // => [[a, b, c], [d]] _getObjArray

@description 返回指定对象的 key 的值的数组                         ,支持多层属性嵌套获取                 ,如:obj.x.y.z,快速获取数组内需要的key值数组

@param {Array} [objects] 目标对象

var objects = [ { a: { b: { c: 2 } } }, { a: { b: { c: 1 } } } ] utils._getObjArray(object, a.b.c) => [2, 1]

_.findIndex(array, [predicate=_.identity], [fromIndex=0])

该方法类似_.find                         ,区别是该方法返回第一个通过 predicate 判断为真值的元素的索引值(index)                         ,而不是元素本身                 。

参数:

array (Array): 要搜索的数组                         。 [predicate=_.identity] (Array|Function|Object|string): 这个函数会在每一次迭代调用         。 [fromIndex=0] (number): The index to search from.

返回值:

(number): 返回找到元素的 索引值(index),否则返回 -1        。

例子:

var users = [ { user: barney, active: false }, { user: fred, active: false }, { user: pebbles, active: true } ]; _.findIndex(users, function(o) { return o.user == barney; }); // => 0 // The `_.matches` iteratee shorthand. _.findIndex(users, { user: fred, active: false }); // => 1 // The `_.matchesProperty` iteratee shorthand. _.findIndex(users, [active, false]); // => 0 // The `_.property` iteratee shorthand. _.findIndex(users, active); // => 2

_.uniq(array)

创建一个去重后的array数组副本                         。使用了SameValueZero 做等值比较                 。只有第一次出现的元素才会被保留

参数:

array (Array): 要检查的数组        。

返回值:

(Array): 返回新的去重后的数组                         。

例子:

_.uniq([2, 1, 2]); // => [2, 1] _isUndefined

@description 判断是否为undefined

@returns 返回布尔值

var a utils._isUndefined(a) => true _.isNaN(value)

检查 value 是否是 NaN                 。

注意: 这个方法基于Number.isNaN                 ,和全局的isNaN 不同之处在于                         ,全局的isNaN对 于 undefined 和其他非数字的值返回 true。

参数:

value (*): 要检查的值                         。

返回值:

(boolean): 如果 value 是一个 NaN         ,那么返回 true                 ,否则返回 false                         。

例子:

_.isNaN(NaN); // => true _.isNaN(new Number(NaN)); // => true isNaN(undefined); // => true _.isNaN(undefined); // => false _debounce

防抖函数真的太棒了                         ,系统里那么多按钮都需要防抖处理。比如导出按钮         ,当然除了防抖函数我还另外上锁        ,避免由于网络原因造成的用户多次点击触发多次请求                 。

// 导出 export: utils._debounce(() => { if (this.exportLock) return this.exportLock = true exportCommonData({ ...this.formQuery, ...this.filter }).then(res => { delete this.exportLock res.url && window.open(res.url) }) }, 1000), _.isEmpty (value)

​ 检查 value 是否为一个空对象                         ,集合                 ,映射或者set                         。 判断的依据是除非是有枚举属性的对象        ,length 大于 0 的 arguments object, array, string 或类jquery选择器         。

​ 对象如果被认为为空                         ,那么他们没有自己的可枚举属性的对象                 。

​ 类数组值                 ,比如arguments对象,array                         ,buffer                         ,string或者类jQuery集合的length 为 0,被认为是空                         。类似的                 ,map(映射)和set 的size 为 0                         ,被认为是空         。

参数:

value (*): 要检查的值        。

返回值:

(boolean): 如果 value 为空         ,那么返回 true                 ,否则返回 false                         。

例子:

_.isEmpty(null); // => true   _.isEmpty(true); // => true   _.isEmpty(1); // => true   _.isEmpty([1, 2, 3]); // => false   _.isEmpty({ a: 1 }); // => false

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win10系统启动引导设置(Win10怎么解锁Win10X引导动画?)