注:前提引入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):返回连接后的新数组。
结果如下:
来源:oschina
链接:https://my.oschina.net/u/4446873/blog/4301666