JavaScript实用库:Lodash源码数组函数解析(十一)without以及很多我没详戏记细过的

本章的内容主要是:without以及很多我没详细记录过的


在这里插入图片描述

Lodash是一个非常好用方便的JavaScript的工具库,使得我们对数据处理能够更加得心应手

接下来我要对Lodash的源码进行剖析学习
每天几个小方法,跟着我一起来学lodash吧


1、_.without(array, [values])

官方解释:
创建一个剔除所有给定值的新数组,剔除值的时候,使用SameValueZero做相等比较。

注意: 不像 _.pull, 这个方法会返回一个新数组。

我们来看例子:
在这里插入图片描述

很明显就是去除了数组中的1,2 留下了3这个元素

接下来看源码:

var without = baseRest(function(array, values) {
  //isArrayLikeObject用于判断array是不是数组
  //baseDifference用于去除元素
  return isArrayLikeObject(array)
    ? baseDifference(array, values)
    : [];
});

module.exports = without;

具体的difference的源码解释可以看我的文章:
JavaScript实用库:Lodash源码数组函数解析(二) difference、baseDifference、isArrayLikeObject、isArrayLike、baseRest

今天就到这里吧

为什么今天就到这里了?

相信有人发现了,有些数组的函数我没有提到,因为有些函数真的转的我头晕了,本人能力有限,所以不能全部解释了,但是我还是将我没提到的方法以及功能写在下面吧:


1、_.intersection([arrays])

创建唯一值的数组,这个数组包含所有给定数组都包含的元素,使用 SameValueZero进行相等性比较。(注:可以理解为给定数组的交集)
在这里插入图片描述


2、 .intersectionBy([arrays], [iteratee=.identity])

这个方法类似 _.intersection,区别是它接受一个 iteratee 调用每一个arrays的每个值以产生一个值,通过产生的值进行了比较。结果值是从第一数组中选择。iteratee 会传入一个参数:(value)。

在这里插入图片描述


3、_.intersectionWith([arrays], [comparator])

这个方法类似 _.intersection,区别是它接受一个 comparator 调用比较arrays中的元素。结果值是从第一数组中选择。comparator 会传入两个参数:(arrVal, othVal)。

在这里插入图片描述


4、_.pull(array, [values])

移除数组array中所有和给定值相等的元素,使用 SameValueZero 进行全等比较。

注意: 和 _.without 方法不同,这个方法会改变数组。使用 _.remove 从一个数组中移除元素。

在这里插入图片描述


5、_.pullAll(array, values)

这个方法类似_.pull,区别是这个方法接收一个要移除值的数组。

Note: 不同于 _.difference, 这个方法会改变数组 array。

在这里插入图片描述


6、.pullAllBy(array, values, [iteratee=.identity])

这个方法类似于_.pullAll ,区别是这个方法接受一个 iteratee(迭代函数) 调用 array 和 values的每个值以产生一个值,通过产生的值进行了比较。iteratee 会传入一个参数: (value)。

Note: 不同于 _.differenceBy, 这个方法会改变数组 array。

在这里插入图片描述


7、_.pullAllWith(array, values, [comparator])

这个方法类似于 _.pullAll,区别是这个方法接受 comparator 调用array中的元素和values比较。comparator 会传入两个参数:(arrVal, othVal)。

注意: 和 _.differenceWith 不同, 这个方法会改变数组 array。

在这里插入图片描述


8、_.pullAt(array, [indexes])

根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。

Note: 和 _.at不同, 这个方法会改变数组 array。

在这里插入图片描述


9、_.sortedIndex(array, value)

使用二进制的方式检索来决定 value值 应该插入到数组中 尽可能小的索引位置,以保证array的排序。

在这里插入图片描述


10、.sortedIndexBy(array, value, [iteratee=.identity])

这个方法类似 _.sortedIndex ,除了它接受一个 iteratee (迭代函数),调用每一个数组(array)元素,返回结果和value 值比较来计算排序。iteratee 会传入一个参数:(value)。

在这里插入图片描述


11、_.sortedIndexOf(array, value)

这个方法类似 _.indexOf,除了它是在已经排序的数组array上执行二进制检索。

在这里插入图片描述


12、_.sortedLastIndex(array, value)

此方法类似于_.sortedIndex,除了 它返回 value值 在 array 中尽可能大的索引位置(index)。

在这里插入图片描述


13、.sortedLastIndexBy(array, value, [iteratee=.identity])

这个方法类似 _.sortedLastIndex ,除了它接受一个 iteratee (迭代函数),调用每一个数组(array)元素,返回结果和value 值比较来计算排序。iteratee 会传入一个参数:(value)。

在这里插入图片描述


14、_.sortedLastIndexOf(array, value)

这个方法类似 _.lastIndexOf,除了它是在已经排序的数组array上执行二进制检索

在这里插入图片描述


15、_.sortedUniq(array)

这个方法类似 _.uniq,除了它会优化排序数组

在这里插入图片描述


16、_.sortedUniqBy(array, [iteratee])

这个方法类似 _.uniqBy,除了它会优化排序数组。

在这里插入图片描述


17、_.union([arrays])

创建一个按顺序排列的唯一值的数组。所有给定数组的元素值使用SameValueZero做等值比较。(注: arrays(数组)的并集,按顺序返回,返回数组的元素是唯一的)

在这里插入图片描述


18、_.xor([arrays])

创建一个给定数组唯一值的数组,使用symmetric difference做等值比较。返回值的顺序取决于他们数组的出现顺序。

在这里插入图片描述


还有一点没有提到,大家可以去lodash中文文档去学习,我这里并不全面,也不是很细致,我只是发表一下自己的看法,同时也是希望能够帮助到其他的人

数组的源码解析就告一段落了,下次就开启下一个数据类型的处理

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弓长于水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值