lodash之_.difference _.differenceBy _.differenceWith方法

帅比萌擦擦* 提交于 2020-10-18 04:21:34

注:前提引入lodash.min.js

1、_.difference

_.difference(array, [values])

difference:英文释义:差别; 差异; 不同(之处); 变化(之处); 差; 差额; 意见分歧; 不和;

功能:创建一个新数组,这个数组中的值,为第一个数字(array参数)排除了给定数组中的值。(从第一个数组中排除第二个数组中的每个项,再返回一个新数组)。

参数:

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

[values](...Array):排除的值。

返回值:

(Array):返回一个过滤值后的新数组。

结果如下:

2、_.differenceBy

_.differenceBy(array, [values], [iteratee=_.identity])

功能:

官方语言:

这个方法类似_.difference,除了它接收一个iteratee(迭代器),调用array和values中的每个元素以产生比较的标准,结果值是从第一数组中选择。iteratee会调用一个参数:(value)。注:(首先使用迭代器分别迭代array和values中的每个元素,返回的值作为比较值。),这个方法会返回一个新数组

大白话:和_difference方法基本上一样,但是多提供了一个iteratee参数,这个参数可以在比较前先做一个处理(对第一和第二个参数的数组遍历处理)。

参数:

array(Array)要检查的数组

[values](...Array):排除的值

[iteratee=_.identity](Array | Function | Object | String ):iteratee调用每个元素。

返回值:(Array)返回过滤掉后的新数组(不影响之前的数组)

如下,给第一个数组和第二个数组中的每个值都调用Math.floor方法,地板函数得 [3,2,1]和[4,2],[3,2,1]中无4有2,第一个数组过滤2则得:[3,1],所以对应原来的就是[3.1,1.3]

 

 

3、_.differenceWith

_.differenceWith(array, [values], [comparator])

功能:

类似于_.difference,它接收一个comparator(比较器),它调用比较array,values中的元素。结果值是从第一数组中选择,comparator调用参数有两个:(arrVal,othVal)

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

            [values](...Array):排除的值

           [comparator](Function):comparator调用每个元素。

返回值:(Array):返回连接后的新数组。

结果如下:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!