lodash.js常用方法汇总

lodash是js的一个实用工具库,现在es6盛行,搭配loash工具库是最方便的一件事了。lodash内部封装了关于字符串,数组,对象一些常见数据类型的处理函数。它所有函数都不会在原有的数据上进行操作,而是复制出一个新的数据而不改变原有数据。
使用传统的js方法处理数据,我们难免会用到遍历取数,而使用loash工具库我们可以减少这一环节,所以还是安利一下。

下面整理的是项目上比较常用到的方法,主要是针对于数组。做一个属于自己的方法查找工具书吧。

使用之前要引用:

import {_} from ‘loash’;

1.difference ()
说明:从数组中过滤元素
用法:_.difference(array,[values])
参数说明:
array:要被检查/过滤的数组。
values:要被在array中剔除的值的集合

//注意两个参数都应该是数组类型
_.difference([1,2,4],2)
[1, 2, 4]
_.difference([1,2,4],[2])
[1, 4]
_.difference([1,2,4],[-1])
[1, 2, 4]
_.difference([1,2,4],[1,2,4])
[]

通常,我用此方法不仅可以剔除不需要的属性,也可以用于比较两个数组是否相同。

2.drop()
说明:数组元素删除
用法: _.drop(array,number),类似于原生js方法中的slice
参数说明:
array: 要被检查/删除的数组
number:从头开始删除number个数组元素。number不传的话默认按1处理

_.drop([1, 2, 3]);
// → [2, 3]
_.drop([1, 2, 3], 2);
// → [3]
_.drop([1, 2, 3], 5);
// → []
.drop([1, 2, 3], 0);
// → [1, 2, 3]
3.first()
说明:返回数组第一个元素.
用法:
.first(array)
如果数组为[]则返回undefined。

4.findIndex()
说明:查询元素序号,遍历数组,如果查询到了符合要求的第一个元素则返回序号,如果没查询到符合要求的元素则返回-1,类似于js中常用的indexof()方法
用法: .findIndex(array, [predicate=.identity], [thisArg])
参数说明:
array: 需要检查/遍历的数组
_.identity()方法返回传给它的第一个参数。
thisArg 需要搜索的索引

var users = [
{ ‘user’: ‘barney’, ‘active’: false },
{ ‘user’: ‘fred’, ‘active’: false },
{ ‘user’: ‘pebbles’, ‘active’: true }
];
_.findIndex(users, function(chr) {
return chr.user == ‘barney’;
});
// → 0

// using the _.matches callback shorthand
_.findIndex(users, { ‘user’: ‘fred’, ‘active’: false });
// → 1

// using the _.matchesProperty callback shorthand
_.findIndex(users, ‘active’, false);
// → 0

// using the _.property callback shorthand
_.findIndex(users, ‘active’);
// → 2
5.findLastIndex()
说明:类似于js中的lastIndexOf(), 其返回的序列号是符合要求的最后一个。
用法:.findLastIndex(array, [predicate=.identity], [thisArg]),见findIndex()方法。

6.dropRight 数组元素删除
用法几乎和drop一样,不同的是从数组末尾开始删除。

7.fill()
说明:数组元素填充
用法: _.fill(array, value, [start=0], [end=array.length])
从开始参数到结束参数,用value来替代或者填补数组元素。因为数组的下标是从0开始的,所以填充的范围是个左闭右开区间-填充的index范围包括start而不包括end.
注意:此方法直接改变array,而不是返回一个数组。

var array = [1, 2, 3];

_.fill(array, ‘a’);
console.log(array);
// → [‘a’, ‘a’, ‘a’]

_.fill(Array(3), 2);
// → [2, 2, 2]

_.fill([4, 6, 8], ‘’, 1, 2);
// → [4, '
’, 8]

8.indexOf
用法:_.indexOf(array, value, [fromIndex=0])
说明:从数组array中查询value的序号,参数3如果是true的话,执行二分查找。

_.indexOf([1, 2, 1, 2], 2);
// → 1

// using fromIndex
_.indexOf([1, 2, 1, 2], 2, 2);
// → 3

// performing a binary search
_.indexOf([1, 1, 2, 2], 2, true);
// → 2

9.lastIndexOf()
说明:类似于indexOf,搜索方向为从末尾到开头
用法:_.lastIndexOf(array, value, [fromIndex=array.length-1])

_.lastIndexOf([1, 2, 1, 2], 2);
// → 3

// using fromIndex
_.lastIndexOf([1, 2, 1, 2], 2, 2);
// → 1

// performing a binary search
_.lastIndexOf([1, 1, 2, 2], 2, true);
// → 3

10.pull()
用法:_.pull(array, [values])
说明:移除值,直接在原数组上进行操作

var array = [1, 2, 3, 1, 2, 3];
_.pull(array, 2, 3);
console.log(array);
// → [1, 1]

11.last()
用法:_.last(array)
说明:返回参数数组的末尾元素

12.flattenDeep
用法:_.flattenDeep(array)
说明:递归的抹平嵌套数组

.flattenDeep([1, [2, 3, [4]]]);
// → [1, 2, 3, 4]
1
2
13.flatten()
用法:
.flatten(array, [isDeep])
说明:抹平嵌套数组
isDeep为空或者false的情况下,只抹平第一层嵌套。为true的情况下,递归的进行抹平。

_.flatten([1, [2, 3, [4]]]);
// → [1, 2, 3, [4]]

// using isDeep
_.flatten([1, [2, 3, [4]]], true);
// → [1, 2, 3, 4]

14.xor()
用法:_.xor([arrays])
说明: 对称消除重复值

.xor([1, 2], [4, 2]);
// [1, 4]
_.xor([1,2],[3,4])
// [1, 2, 3, 4]
_.xor([1,2],[3,4,1])
// [2, 3, 4]
_.xor([1,2],[1,2])
// []

我们来对比一下奇数个与偶数个数组的使用

_.xor([1,2],[1,2],[1])
[1]
_.xor([1,2],[1,2],[3,4])
[3, 4]
_.xor([1,2],[1,2],[1,4])
[1, 4]
_.xor([1,2],[1,2],[1,4],[1,4])
[]
_.xor([1,2],[1,2],[3,4,1])
[3, 4, 1]
.xor([1,2],[1,2],[1,2])
[1, 2]

所以说,xor这个函数应该是参数两个两个进行重复值消除的。如果n和n+1还有未消除的非重复值,那么会和n+2和n+3消除后保留下来的数组进行合并。

15.pullAt ()
用法:_.pullAt(array, [indexes])
说明:按序号移除值,直接操作原数组并且返回移除的值组成的数组。

var array = [5, 10, 15, 20];
var evens = _.pullAt(array, 1, 3);

console.log(array);
// → [5, 15]

console.log(evens);
// → [10, 20]

可以看出来,移除1,3位置的元素从逻辑上来说是同时移除的。避免了数组越界的问题。

16.remove()
用法:.remove(array, [predicate=.identity], [thisArg])
说明:移除元素,对原数组进行操作,并且返回移除元素的集合。
从参数可以看出来,参数的处理逻辑是类似于前面的dropRightWhile方法的。

var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
return n % 2 == 0;
});

console.log(array);
// → [1, 3]

console.log(evens);
// → [2, 4]

17.chunk 对数组进行分块的方法
用法: _.chunk(array,number) 根据number对array进行均等的分块,如果array不能被number平分,则会留下一个余下的块。

_.chunk([‘a’,‘b’,‘c’,‘d’],-1);

//当 size<=1的时候,都是按1等分

[‘a’,‘b’,‘c’,‘d’]

//size=2

[[‘a’,‘b’],[‘c’,‘d’]]

//size=3

[[‘a’,‘b’,‘c’],[‘d’]]

//size>=4

[‘a’,‘b’,‘c’,‘d’]

//不能这么传参数

_.chunk(‘a’, ‘b’, ‘c’, ‘d’, 2)

[‘a’]

18.compact()
说明:去除假值,将空值,0, NaN去除掉。
用法:_.compact(array)

//很明显第一个参数被处理了,剩下的参数都被忽视了。
_.compact(‘a’,‘b’,’’);

[“a”]

_.compact([‘a’,‘b’,’’]);

[“a”, “b”]

_.compact([0, 1, false, 2, ‘’, 3,NaN,undefined]);

[1, 2, 3]

19.dropRightWhile()
用法 .dropRightWhile(array,[predicate=.identity],[thisArg])
说明: 数组元素过滤
参数说明:
参数1:待处理的数组
参数2:可以是(Function|Object|string),会对数组的每个元素调用,会依赖于第三个参数【thisArg】 。
参数3:判断是否删除的谓词。

var users = [
{ ‘user’: ‘barney’, ‘active’: true },
{ ‘user’: ‘fred’, ‘active’: false },
{ ‘user’: ‘pebbles’, ‘active’: false }
];

// using the _.matches callback shorthand
.pluck(.dropRightWhile(users, { ‘user’: ‘pebbles’, ‘active’: false }), ‘user’);
// → [‘barney’, ‘fred’]

// using the _.matchesProperty callback shorthand
.pluck(.dropRightWhile(users, ‘active’, false), ‘user’);
// → [‘barney’]

// using the _.property callback shorthand 此处的解释应该是要drop不存在active属性的对象。
.pluck(.dropRightWhile(users, ‘active’), ‘user’);
// → [‘barney’, ‘fred’, ‘pebbles’]

### 回答1: lodash.js是一个流行的JavaScript工具库,提供了许多实用的函数和方法,用于简化JavaScript编程的复杂性。如果你想要下载lodash.js,你可以采取以下几种方式: 1. 官方网站:你可以直接访问lodash.js的官方网站(https://lodash.com/)下载最新版本的lodash.js。在官方网站上,你可以找到针对不同需求的不同构建版本,包括完整版、核心版和按需版本。你只需点击相应的下载链接,即可将lodash.js下载到本地。 2. npm包管理工具:作为一个流行的npm包,你可以使用npm命令来下载lodash.js。首先,在你的项目文件夹中打开终端或命令提示符窗口,运行以下命令安装lodash.js: ``` npm install lodash ``` 这将自动下载并安装最新版本的lodash.js到你的项目中。 3. CDN:如果你只想暂时使用lodash.js而不想下载到本地,你可以使用CDN(内容分发网络)来引用lodash.js。一些常见的CDN提供商,如cdnjs、unpkg等,都提供了lodash.js的链接。你可以将这些链接直接复制到你的HTML文件中的`<script>`标签中,从而引入lodash.js。 无论你选择哪种方式,一旦你成功下载了lodash.js,你就可以在你的项目中引用它,并使用其中的函数和方法来简化你的JavaScript编程工作。 ### 回答2: lodash.js 是一个 JavaScript 库,提供了一组实用的函数,旨在简化处理数组、对象、字符串、函数等常见数据类型的操作。 要下载 lodash.js,可以按照以下步骤进行: 1. 打开 lodash.js 的官方网站(https://lodash.com/)。 2. 在页面中找到并点击 "Download"(下载) 按钮。 3. 在下载页面中,选择适合的版本和格式。 4. 如果你使用 npm(Node.js 包管理器),可以通过在终端或命令提示符中运行以下命令来安装 lodash: ``` npm install lodash ``` 5. 如果你在浏览器中使用 lodash,可以直接下载 lodash.js 文件,并将其引入你的网页中。点击下载链接,保存 lodash.js 文件到你的项目目录。 6. 在你的 HTML 文件中,使用 `<script>` 标签将 lodash.js 引入: ```html <script src="path/to/lodash.js"></script> ``` 其中 `path/to/lodash.js` 是你刚才下载 lodash.js 文件的路径。 现在,你就可以在你的项目中使用 lodash.js 提供的函数了。引入了 lodash.js 之后,可以通过 `_.`(underscore 是 lodash.js 的函数别名)来调用库中的函数。 例如,你可以使用 `_.forEach` 函数来遍历一个数组: ```javascript _.forEach([1, 2, 3], function(value) { console.log(value); }); ``` 总之,下载 lodash.js 主要有两种方式:通过 npm 安装到你的项目中,或者直接下载 lodash.js 文件并在你的网页中引入。然后,你就可以愉快地使用 lodash.js 提供的实用函数来简化你的 JavaScript 编程。 ### 回答3: lodash.js是一个JavaScript的实用工具库,提供了许多常用的功能函数,可以简化开发过程中的操作。要下载lodash.js,可以采取以下步骤: 第一步,打开lodash.js的官方网站。可以通过搜索引擎搜索"lodash.js",找到官方网站的链接。 第二步,进入官方网站后,可以在网站上找到下载选项。一般来说,会有多个版本可供选择,包括编译后的版本和源代码版本。 第三步,选择需要下载的版本。编译后的版本适合直接在浏览器端使用,而源代码版本则可以进行自定义修改。根据自己的需求选择相应的版本。 第四步,完成版本选择后,点击下载链接。根据网速的不同,下载时间会有所不同。 第五步,下载完成后,将lodash.js文件保存到项目目录中的合适位置。可以根据自己的项目需求来确定所保存的路径。 第六步,将lodash.js引入到项目中的HTML文件中。可以使用<script>标签来引入,通过指定文件路径来将lodash.js加载到HTML中。 最后,将lodash.js成功下载并引入到项目中后,就可以在JavaScript代码中使用lodash.js提供的各种实用功能函数了,从而简化开发过程,提高开发效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值