2.25 partition

2.25.1 语法:

_.partition(list, predicate, [context])

2.25.2 说明:

拆分list为两个数组。

第一个数组的元素都满足predicate, 而第二个数组的所有元素为不能满足predicate。

2.25.3 代码示例:

示例一:拆数组

var arr1 = _.partition([1, 2, 3, 4], function(element, index, list){
return element % 2 === 0;
});
console.log(arr1);//=> [[2, 4],[1, 3]];

示例二:拆对象

var arr2 = _.partition({a:1, b:2, c:3, d:4}, function(value, key, list){
return value % 2 === 0;
});
console.log(arr2);//=> [[2, 4],[1, 3]];

示例三:拆字符串

var arr2 = _.partition('1234', function(value, key, list){
console.log(list); //=> String 1234
return value % 2 === 0;
});
console.log(arr2);//=> [["2", "4"],["1", "3"]];

示例四:拆arguments

(function(){
var result = _.partition(arguments, function(value, key, list){
return value % 2 === 0;
});
console.log(result);//=> [["2", "4"],["1", "3"]];
}(1, 2, 3, 4));

2.25.4 默认的predicate

var list = [1, false, true, '', null, 0, '0'];
var result = _.partition(list);
console.log(result); //=> [[1, true, "0"], [false, "", null, 0]]; //值是对象
var oList = [{x: 1},{x: 1},{x: 0}];
var arr1 = _.partition(oList);
var arr2 = _.partition(oList, 'x');
console.log(arr1); //=> [[{x: 1},{x: 1},{x: 0}],[]]
console.log(arr2); //=> [[{x: 1},{x: 1}],[{x: 0}]]

2.25.5 写出于默认一样的predicate(坑)

var list = [1, false, true, '', null, 0, '0'];
var result = _.partition(list);
var predicate = function(element, index, list){
//请在这里补充代码
};
console.log(result); //=> [[1, true, "0"], [false, "", null, 0]];

2.25.6 拆分奇偶的另一种写法(坑)

var arr1 = _.partition([1, 2, 3, 4], function(element, index, list){
return element & 1; // &是什么鬼,这么厉害!
});
console.log(arr1);//=> [[1, 3], [2, 4]];

underscorejs-partition学习的更多相关文章

  1. 不学就吃亏的underscorejs类库学习示例 ——(集合篇)

    underscorejs是一个很不错的类库,我的很多项目都引用了这个类库,的确可以带来很多方便. 记得我当初学的时候,看underscorejs的api是看的一知半解的,甚至不明白api里的conte ...

  2. STL之partition学习

    顺便存一下numeric函数的使用方法吧,感觉用处不大. https://blog.csdn.net/baishuo8/article/details/84073565 partition函数,将元素 ...

  3. Spark的Straggler深入学习(2):思考Block和Partition的划分问题——以论文为参考

    一.partition的划分问题 如何划分partition对block数据的收集有很大影响.如果需要根据block来加速task的执行,partition应该满足什么条件? 参考思路1:range ...

  4. MySQL分表(Partition)学习研究报告

    最近在开发一个新的项目,可能会产生大数据量,需要对部分表进行分表操作,故来研究学习MySQL的分表功能. 由于实验报告已经写成Exlce文件了,各位看过就直接下载吧:MySQL分表分析报告.xls 以 ...

  5. Kafka学习笔记(二):Partition分发策略

    kafka版本0.8.2.1 Java客户端版本0.9.0.0 为了更好的实现负载均衡和消息的顺序性,Kafka Producer可以通过分发策略发送给指定的Partition.Kafka保证在par ...

  6. MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (1)

    公司线上在用partition,有一个表的分区字段错了,需要重建,结果发现没有办法像修改主键字段或者修改索引字段那样直接一条sql搞定.而是需要建临时表,有down time,所以去仔细看了文档,研究 ...

  7. kafka学习(四)-Topic & Partition

    topic中partition存储分布 Topic在逻辑上可以被认为是一个queue.每条消费都必须指定它的topic,可以简单理解为必须指明把这条消息放进哪个queue里.为了使得 Kafka的吞吐 ...

  8. sql server 学习笔记 ( row_number, rank, dense_rank over partition by order by )

    refer : https://blog.csdn.net/winer2008/article/details/4283539 https://www.cnblogs.com/linJie193090 ...

  9. 【kafka学习笔记】合理安排broker、partition、consumer数量

    broker的数量最好大于等于partition数量 一个partition最好对应一个硬盘,这样能最大限度发挥顺序写的优势. broker如果免得是多个partition,需要随机分发,顺序IO会退 ...

  10. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

随机推荐

  1. Centos6快速yum lamp

    yum install httpd httpd-devel mysql mysql-server mysql-devel  php php-mysql php-common php-gd php-mb ...

  2. Django中的Form

    Form 一.使用Form Django中的Form使用时一般有两种功能: 1.生成html标签 2.验证输入内容 要想使用django提供的form,要在views里导入form模块 from dj ...

  3. [置顶] c# asp.net 修改webconfig文件 配置

    c# asp.net 修改webconfig文件 配置 #region 修改config文件 /// <summary> /// 修改config文件(AppSetting节点) /// ...

  4. 基于TCP/IP的Matlab Modbus与M340 PLC通讯

    本人原创,代码拿出来供大家交流学习经验,勿作他用. 废话不多说,代码直接上. 1.创建链接 function link = connect_create(client_addr,port) %**** ...

  5. in_array严格模式和普通模式的区别

    貌似是因为test转整型变0  0和0 匹配能成功 返回真 启用严格模式发现没有这个问题

  6. redis.config翻译

    # Redis configuration file example#redis配置文件范例 # Note on units: when memory size is needed, it is po ...

  7. 如何解决 SogouIinput not enough space for thread data ?? 虚拟内存

    问题:总是提示没有足够的空间读写数据 上图: 原因: 可能是虚拟内存设置了过大了[我不知道明白是不是也是这样,我出现这个问题就是因为我把虚拟内存设置成了4G,我的物理内存是2G的] 具体问题具体分析, ...

  8. JAVA 内存泄露的理解

    1 什么是内存泄露? 内存泄露是指没用的对象持续占有内存空间,造成内存空间浪费.所以说JAVA是有内存泄露的. 2 内存泄露的原因是什么? 较长生命周期对象持有短生命周期对象的引用,导致短生命周期对象 ...

  9. Delphi中WebBrowser拦截网页Alert对话框消息(转)

    interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, O ...

  10. UVA 10465 Homer Simpson(dp + 完全背包)

    Problem C: Homer Simpson Time Limit: 3 seconds Memory Limit: 32 MB Homer Simpson, a very smart guy, ...