总结一下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)

lodash中Collection部分所有方法的总结的更多相关文章

  1. java8在Collection中新增加的方法removeIf

    记得我在以前找工作的经历中,遇到过一个面试官问过我一个很基础的问题.问题是:有一个List中有10个元素,我现在想从中删除3个元素,请问怎么做?我当时也没想,就直接说,List的有自带的remove方 ...

  2. java方法中Collection集合的基本使用与方法

    集合类的由来,对象用于封闭特有数据,对象多了需要存储,如果对象的个数不确定就使用集合容器进行存储. 集合特点:1.用于存储对象的容器.2.集合的长度是可变的.3.集合中不可以存储基本数据类型值. 集合 ...

  3. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  4. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  5. 在.NET Framework中慎用DirectoryInfo.GetFiles方法

    .NET Framework中的DirectoryInfo.GetFiles方法,可以在一个文件夹下通过通配符找出符合条件的文件. 我们首先在文件夹C:\DemoFolder下定义两个文件:demo. ...

  6. Java中Collection 的基本认识

    集合Conllection的基本概念:1.集合的基本认识:如StringBuffer&StringBuilder是集合(存储的对象类型是String).数组.对象与其很相似,但是还有区别.2. ...

  7. 一文带你认识Java8中接口的默认方法

    Java8是Oracle于2014年3月发布的一个重要版本,其API在现存的接口上引入了非常多的新方法. 例如,Java8的List接口新增了sort方法.在Java8之前,则每个实现了List接口的 ...

  8. Python3中使用PyMongo的方法详解

    前言 本文主要给大家介绍的是关于在Python3使用PyMongo的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍: MongoDB存储 在这里我们来看一下Python3下Mongo ...

  9. Java 8——接口中个的默认方法和静态方法

    在Java SE 8之前,interface只是事物的抽象,用来定义统一的抽象事物和描述事物的抽象行为和属性. 但是在Java SE 8中,增加了可以在interface中增加默认实现的行为和事物的静 ...

随机推荐

  1. (NO.00003)iOS游戏简单的机器人投射游戏成形记(三)

    接下来我们建立机器人对象. 在Sprites文件夹中新建Robot.ccb文件,类型为Node. 打开SpriteBuilder的Tileless View将机器人身体和手臂拖入根节点,调整好相对的位 ...

  2. 详解ebs接口之客户配置文件导入(二)

    ------------------------------------ -- 1a. Setup the Org_id ------------------------------------ ex ...

  3. Unity 5.X扩展编辑器之打包assetbundle

    5.x的assetbundle与4.x以及之前的版本有些不同,不过本质是一样的,只不过5.x打包assetbundle更为简单和人性化了,总体来说只需要三个步骤: 第一步:创建打包资源 //这里是一个 ...

  4. 【翻译】在Ext JS 5应用程序中如何使用路由

    原文:How to Use Routing in Your Ext JS 5 Apps 简介 Ext JS 5是一个重要的发布版本,它提供了许多新特性来创建丰富的.企业级的Web应用程序.MVVM和双 ...

  5. How Many Processes Should Be Set For The Receiving Transaction Manager (RTM)

    In this Document   Goal   Solution   References APPLIES TO: Oracle Inventory Management - Version 10 ...

  6. linux进程管理之进程创建

    所谓进程就是程序执行时的一个实例. 它是现代操作系统中一个很重要的抽象,我们从进程的生命周期:创建,执行,消亡来分析一下Linux上的进程管理实现. 一:前言 进程管理结构; 在内核中,每一个进程对应 ...

  7. NDK 与 JNI 的关系

    简介 JNI是java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码.JNI 是本地编程接口,Java和C/ ...

  8. SpriteBuilder中使用TrueType字体的一些障碍

    在实践中,有一些小的陷阱和障碍可能阻止你使用一般的TrueType字体. 第一个,必须要有一个有效的字体文件.在Finder中双击该.ttf文件,应该会打开Font Book app,显示一个象形符号 ...

  9. 【Matlab编程】matlab 画图

    1.  不用截图工具就可以将图保存成图像格式,并且没有背景颜色:saveas(gcf ,'outputname','png/jpg'),第三项省略时默认为fig.m文件 2.  计算形如(-1)^2/ ...

  10. 操作系统 - unix和windows下进程异同

    在UNIX系统中,只有一个系统调用可以用来创建新进程:fork.这个系统调用会创建一个与调用进程相同的副本.在调用了fork之后,这两个进程(父进程和子进程)拥有相同的存储映像.同样的环境字符串和同样 ...