天天看点

lodash中Collection部分所有方法的总结

  总结一下lodash中Collection的所有的方法,方便对比记忆,也便于使用时候查找。

1、    判断是否符合条件;返回bool;

  a)  every: 判断每一值是不是都符合条件;

    通过 

predicate

(断言函数) 检查 

collection

(集合)中的 所有 元素是否都返回真值;

    _.every(collection, [predicate=_.identity])

  b)  some:判断是否有符合条件的值;

predicate

(断言函数) 检查

collection

(集合)中的元素是否存在 任意 truthy(真值)的元素,一旦 

predicate

(断言函数) 返回 truthy(真值),遍历就停止;

    _.some(collection, [predicate=_.identity])

  c)  includes:是否找到要找的值

    检查 

value

(值) 是否在 

collection

(集合) 中。如果 

collection

(集合)是一个字符串,那么检查 

value

(值,子字符串) 是否在字符串中, 否则使用 

SameValueZero

 做等值比较。 如果指定 

fromIndex

是负数,那么从 

collection

(集合) 的结尾开始检索。

    _.includes(collection, value, [fromIndex=0])

2、    筛选,选出符合条件的数据;

  a)  filter: 找到所有个符合条件的

    遍历 

collection

(集合)元素,返回 

predicate

(断言函数)返回真值 的所有元素的数组;

    _.filter(collection, [predicate=_.identity])

  b)  find:找到1个符合条件的

collection

predicate

(断言函数)第一个返回真值的第一个元素;

    _.find(collection,[predicate=_.identity], [fromIndex=0])

    _.findLast(collection,[predicate=_.identity], [fromIndex=collection.length-1])

  c)  partition: 把符合条件和不符合条件的分开

    创建一个分成两组的元素数组,第一组包含

predicate

(断言函数)返回为 truthy(真值)的元素,第二组包含

predicate

(断言函数)返回为 falsey(假值)的元素;

    _.partition(collection, [predicate=_.identity])

  d)  reject: 找到所有不符合条件的

    

_.filter

的反向方法;此方法 返回 

predicate

(断言函数) 不 返回 truthy(真值)的

collection

(集合)元素;

              _.reject(collection, [predicate=_.identity])

3、    顺序

  a)  OrderBy: 灵活排序

    此方法类似于

_.sortBy

,除了它允许指定 iteratee(迭代函数)结果如何排序。 如果没指定 

orders

(排序),所有值以升序排序。 否则,指定为"desc" 降序,或者指定为 "asc" 升序,排序对应值。

  b)  Sample: 取样,随机取出一个值;

    从

collection

(集合)中获得一个随机元素。

    _.sampleSize(collection, [n=1])

  c)  SortBy: 按照升序排序

    创建一个元素数组。 以 iteratee 处理的结果升序排序

    _.sortBy(collection, [iteratees=[_.identity]])

  d)  Shuffle: 打乱顺序

    创建一个被打乱值的集合。 使用 Fisher-Yates shuffle 版本。

    _.shuffle(collection)

4、    生成key,分类

  a)  CountBy: 值为当前一类数据的个数;

    创建一个组成对象,key(键)是经过 

iteratee

(迭代函数) 执行处理

collection

中每个元素后返回的结果,每个key(键)对应的值是 

iteratee

(迭代函数)返回该key(键)的次数(愚人码头注:迭代次数)。

    _.countBy(collection, [iteratee=_.identity])

  b)  KeyBy: 值为生成key的对象;

    创建一个对象组成, key(键) 是 

collection

(集合)中的每个元素经过 

iteratee

(迭代函数) 处理后返回的结果。

    _.keyBy(collection, [iteratee=_.identity])

  c)  GroupBy: 值为当前类所有的值;

    创建一个对象,key 是 

iteratee

 遍历 

collection

(集合) 中的每个元素返回的结果。 分组值的顺序是由他们出现在 

collection

(集合) 中的顺序确定的;

    _.groupBy(collection, [iteratee=_.identity])

5、    扁平化

  a)  FlatMap:

    创建一个扁平化(愚人码头注:同阶数组)的数组,这个数组的值来自

collection

(集合)中的每一个值经过 

iteratee

(迭代函数) 处理后返回的结果,并且扁平化合并。

    _.flatMap(collection, [iteratee=_.identity])

    _.flatMapDeep(collection, [iteratee=_.identity])

    _.flatMapDepth(collection, [iteratee=_.identity], [depth=1])

6、    遍历处理

  a)  forEach

    调用 

iteratee

collection

(集合) 中的每个元素, iteratee 调用3个参数: (value, index|key, collection)。 如果迭代函数(iteratee)显式的返回 

false

 ,迭代会提前退出。( each )

    _.forEach(collection, [iteratee=_.identity])

    _.forEachRight(collection, [iteratee=_.identity])

  b)  map:

    创建一个数组, value(值) 是 

iteratee

(迭代函数)遍历 

collection

(集合)中的每个元素后返回的结果。 iteratee(迭代函数)调用3个参数: (value, index|key, collection).

    _.map(collection, [iteratee=_.identity])

  c)  invokeMap:

    调用

path

(路径)上的方法处理 

collection

(集合)中的每个元素,返回一个数组,包含每次调用方法得到的结果。任何附加的参数提供给每个被调用的方法。如果

methodName

(方法名)是一个函数,每次调用函数时,内部的 

this

 指向集合中的每个元素。

    _.invokeMap(collection, path, [args])

7、    长度

  a)  Size

    返回

collection

(集合)的长度,如果集合是类数组或字符串,返回其 length ;如果集合是对象,返回其可枚举属性的个数。

    _.size(collection)

继续阅读