Lodash笔记

Lodash https://www.lodashjs.com/docs/lodash.chunk
1.安装

$ npm i -g npm 
$ npm i --save lodash

2.lodash的好处
Lodash通过array、number、objects、string等等的使用难度从而让javaScript变得简单。
Lodah的模块化方法非常适用于:
遍历array、object和string
对值进行操作和检测
创建符合功能的函数
3.数组Array
1)_.chunk(array,[size=1])
将数组(array)拆分成多个size长度的区块,并将这些区块组成一个新数组。如果array无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
2) _.compact(array)
创建一个新数组,包含原数组中所有的非假值元素。例如,false,null,0,””,undefined和NaN都是被 认为是”假值”。

3)_.concat(array,[values])
创建一个新数组,将array与任何数组或值连接在一起。

4)_.difference(array,[values])
创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。

5).differenceBy(array,[value],[iteratee=.identity])
该方法类似_.difference,除了它接受一个iteratee,调用array和values中的每个元素以产生比较的标准。结果只是从第一个数组中选择。

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

该方法类似_.difference,除了它接受一个comparator(比较器),它调用比较array,values中的元素。

7)_.drop(array,[n=1])

创建一个切片数组,去除array前面的n个元素。(n默认值为1)
8)_.dropRight(array,[n=1])

创建一个切片数组,去除array尾部的n个元素。

9).dropRightWhile(array,[predicate=.identity])

创建一个切片数组,去除array中从predicate返回假值开始到尾部的部分。

10).dropWhile(array,[predicate=.identity])

创建一个切片数组,去除array中从起点开始到predicate返回假值结束部分。

11)_.fill(array,value,[start=0],[end=array.length])

使用value值来填充(替换)array,从start位置开始,到end位置结束(但不包含end位置)

12).findIndex(array,[predicate=.identity],[formIndex=0])

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

13).findLastIndex(array,[predicate=.identity],[fromIndex=array.length-1])

这个方法类似_.findIndex,区别是它是从右到左的迭代集合array中的元素。

14)_.head(array)

获取数组array的第一个元素

15)_.flatten(array)

减少一级array的嵌套深度。

16)_.flattenDeep(array)

将array递归为一维数组

17)_.flattenDepth(array,[depth=1])

根据depth递归减少array的嵌套层级

18)_.fromPairs(pairs)

与_.toPairs 正好相反,这个方法返回一个由键值对pairs构成的对象。

19)_.indexOf(array,value,[fromIndex=0])

使用SameValueZero等值比较,返回首次value在数组array中被找到的索引值,如果fromIndex为负值,将从数组array尾端索引进行匹配

  1. _.initial(array)

获取数组array中除了最后一个元素之外的所有元素

21)_.intersection([arrays])

创建唯一值的数组,这个数组包含所有给定数组都包含的元素,使用SameValueZero进行相等性比较(可以理解为给定数组的交集)

22).intersectionBy([arrays],[iteratee=.identity])

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

23)_.intersectionWith([arrays],[comparator])

这个方法类似_.intersection,区别是它接受一个comparator调用比较arrays中的元素。结果值是从第一个数组中选择。

24)_.join(array,[separator=’,’])

将数组array中的所有元素转换为由separator分隔的字符串。

25)_.last(array)

获取array中的最后一个元素。

26)_.lastIndexOf(array,value,[fromIndex=array.length-1])

这个方法类似_.indexOf,区别是它葱油到左遍历array的元素。

27)_.nth(array,[n=0])

获取array数组的第n个元素。如果n为负数,则返回从数组结尾开始的第n个元素。

28)_.pull(array,[values])

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

29)_.pullAll(array,values)

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

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

这个方法类似于_.pullAll,区别是这个方法接受一个iteratee调用array和values的每个值以产生一个值,通过产生的值进行比较。

31)_.pullAllWith(array,values,[comparator])

这个方法类似于_.pullAll,区别是这个方法接受comparator调用array中的元素和values比较。

32)_.pullAt(array,[indexes])

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

33).remove(array,[predicate=.identity])

移除数组中的predicate返回为真值的所有元素,并返回移除元素组成的数组。

34)_.reverse(array)

反转array,使得第一个元素变为最后一个元素,第二个元素变为倒数第二个元素,依次类推。

35)_.slice(array,[start=0],[end=array.length])

裁剪数组array,从start位置开始到end结束,但不包含end本身的位置。

36)_.sortedIndex(array,value)

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

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

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

38)_.sortedIndexOf(array,value)

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

39)_.sortedLastIndex(array,value)

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

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

此方法类似_.soretedLastIndex,除了它接受一个iteratee,调用每一个数组元素,返回结果和value值比较计算排序。

41)_.sortedLastIndexOf(array,value)

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

42)_.sortedUniq(array)

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

43)_.sortedUniqBy(array,[iteratee])

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

44)_.tail(array)

获取除了array数组第一个元素以外的全部元素。

45)_.take(array,[n=1])

创建一个数组切片,从array数组起始元素开始提取n个元素。

46)_.takeRight(array,[n=1])

创建一个数组切片,从array数组的最后一个元素开始提取n个元素。

47).takeRightWhile(array,[predicate=.identity])

从array数组的最后一个元素开始提取元素,知道predicate返回假值。

48)takeWhile(array,[predicate=_.identity])

从array数组的起始元素开始提取元素,直到predicate返回假值。

49)_.union([arrays])

创建一个按顺序排列的唯一值的数组。所有给定数组的元素的元素值使用SameValueZero做等值比较。

50).unionBy([arrays],[iteratee=.identity])

这个方法类似_.union,除了它接受一个iteratee,调用每一个数组的每个元素以产生唯一性计算的标准。

51)_.unionWith([arrays],[comparator])

这个方法类似_.union,除了它接受一个comparator调用比较arrays数组的每一个元素。

52)_.uniq(array)

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

4.Lang

(1)_.castArray(value)

如果value不是数组,那么强制转换为数组

(2)_.clone(value)

创建一个value的浅拷贝,(浅拷贝改变复制的数组,同时原来的数组也被改变)

(3)_.cloneDeep(value)

这个方法类似_.clone,除了它会递归拷贝value,(浅拷贝改变复制的数组,原来的数组不会改变)

(4)_.cloneDeepWith(value,[customizer])

这个方法类似_.cloneWith,除了它会递归克隆value

(5)_.cloneWith(value,[customizer])

这个方法类似_.clone,除了它接受一个customizer定制返回的克隆值。如果customizer返回undefined将会使用拷贝方法代替处理

(6)_.conformsTo(objects,source)

通过调用断言source的属性与object的相应属性值,检查object是否符合source。

(7)_.eq(value,other)

执行SameValueZero比较两者的值,来确定他们是否相等。
(8)_.gt(value,other)

检查value是否大于other

(9)_.gte(value,other)

检查value是否大于或者等于other

(10)_.isArguments(value)

检查value是否是一个类arguments对象

(11)_.isArray(value)

检查value是否是Array类对象

(12)_.isArrayBuffer(value)

检查value是否是ArrayBuffer对象

(13)_.isArrayLike(value)

检查value是否是类数组。如果一个值被认为是类数组,那么它2不是一个函数,并且value.length是一个整数,大于等于0,小于等于Number.MAX_SIZE_INTEGER

(14)_.isArrayLikeObject(value)

这个方法类似_.isArrayLike,除了它还检查value是否是个对象。

(15)_.isBoolean(value)

检查value是否是原始boolean类型或者对象

(16)_.isBuffer(value)

检查value是否是个buffer

(17)_.isDate(value)

检查value是否是date对象

(18)_.isElement(value)

检查value是否是可能是DOM元素

(19)_.isEmpty(value)

检查value是否为一个空对象,集合,映射或者set

(20)_.isEqual(value,other)

执行深比较来确定两者的值是否相等。

(21)_.isEqualWith(value,other,[customizer])

这个方法类似_.isEqual。除了它接受一个custmizer用来定制比较值。

(22)_.isError(value)

检查value是否是
Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, 或者 URIError对象。

(23)_.isFinite(value)

检查 value 是否是原始有限数值。

(24)_.isFunction(value)

检查value是否是Function对象

(25)_.isInteger(value)

检查value是否为一个整数。

(26)_.isLength(value)

检查value是否为有效的类数组长度

(27)_.isMap(value)

检查value是否为一个Map对象

(28)_.isMatch(objects,source)

执行一个深度比较,来确定object是否含有和source完全相等的属性值。

(29)_.isMatchWith(object,source,[customizer])

这个方法类似 _.isMatch。 除了它接受一个 customizer 定制比较的值。 如果 customizer 返回 undefined 将会比较处理方法代替。

(30)_.isNaN(value)

检查 value 是否是 NaN。

(31)_.isNative(value)

检查value是否是一个原生函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章