UnderScore的使用实例记录
集合操作
_.range(),主要用于区间的获取操作。参数说明:(param1):范围上限,(param1,param2):起始及结束范围,(param1,param2,param3):起始结束范围,正数则为区间跨度,-1则为:负数区间跨度。
_.range(10);
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_.range(1, 11);
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
_.range(0, 30, 5);
=> [0, 5, 10, 15, 20, 25]
_.range(0, -10, -1);
=> [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
_.range(0);
=> []
_.each(list,function(c,i){}),主要用于遍历每个元素进行相应处理操作。参数说明:list为具体遍历的数组,function(c,i)为具体的遍历情况处理,c为具体遍历实体参数,i为具体的index
_.each([1, 2, 3], alert);
=> alerts each number in turn...
_.each({one: 1, two: 2, three: 3}, alert);
=> alerts each number value in turn...
_.filer(list,function(c){}),主要用于根据条件进行过滤相关数据操作。参数说明:list为具体遍历的数组,function(c)为具体执行的过滤操作。需要返回具体的数据。
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
=> [2, 4, 6]
_.map(list,function(c){}),主要用于根据元素进行相应的操作。参数说明:list为具体遍历的数组,function(c)为具体执行的对应的操作。需要返回具体的数据。
_.map([1, 2, 3], function(num){ return num * 3; });
=> [3, 6, 9]
_.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; });
=> [3, 6, 9]
_.reduce(list,function(c,m){var d m.push(d) return m},[]),主要用于对列表元素进行格式转换等处理操作,并生成全新结果并返回。参数说明:list为具体遍历的数组,function(c)为具体执行的组装数据的操作,并最终需要进行返回新的数据结果。
var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
=> 6
_.find(list,function(c){}),主要用于根据条件查找相应的数据中匹配的对象。参数说明:list为具体遍历的数组,function(c)为具体查找的条件规则。
var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
=> 2
_.some(list,function(c){}),主要用于查找是否存在某个数据在数组中是否存在。参数说明:list为具体遍历的数组,function(c)为存在条件,返回true或false。
_.some([null, 0, 'yes', false]);
=> true
_.groupBy(list,param),主要用于根据分组字段对数据集合进行分组。参数说明:list为具体遍历的数组,param为分组字段或分组方法,使用单引号包含即可,返回具体分组后的数据。
_.groupBy([1.3, 2.1, 2.4], function(num){ return Math.floor(num); });
=> {1: [1.3], 2: [2.1, 2.4]}
_.groupBy(['one', 'two', 'three'], 'length');
=> {3: ["one", "two"], 5: ["three"]}
_.sortBy(list,function(c){}),主要用于对数组进行排序。参数说明:list为具体遍历的数组,function(c)为具体排序的参数,默认为从小到大。
_.sortBy([1, 2, 3, 4, 5, 6], function(num){ return Math.sin(num); });
=> [5, 4, 6, 3, 1, 2]
_.indexBy(list,param),主要用于对数据进行索引。参数说明:list为具体遍历的数组,param为具体的索引字段或方法。
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.indexBy(stooges, 'age');
=> {
"40": {name: 'moe', age: 40},
"50": {name: 'larry', age: 50},
"60": {name: 'curly', age: 60}
}
_.values(list),主要用于将对象转换为数组。参数说明:list为具体的对象。
_.values({one: 1, two: 2, three: 3});
=> [1, 2, 3]
_.reduceRight(list,function(a,b){}),主要用于重新组装数据,但是与reduce不同的是,对数组的遍历是从末尾开始执行的。参数说明:list为具体的数据集合,function(a,b)为具体的组装的参数和输出参数。
var list = [[0, 1], [2, 3], [4, 5]];
var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
=> [4, 5, 2, 3, 0, 1]
_.where(list,{param}),主要用于过滤数据。参数说明:list为具体的数据集合,param为具体的过滤条件。
_.where(listOfPlays, {author: "Shakespeare", year: 1611});
=> [{title: "Cymbeline", author: "Shakespeare", year: 1611},
{title: "The Tempest", author: "Shakespeare", year: 1611}]
_.findWhere(list,{param}),主要用于查找过滤操作。参数说明:list为具体的数据集合,param为具体的过滤条件。
_.findWhere(publicServicePulitzers, {newsroom: "The New York Times"});
=> {year: 1918, newsroom: "The New York Times",
reason: "For its public service in publishing in full so many official reports,
documents and speeches by European statesmen relating to the progress and
conduct of the war."}
_.reject(list,function(c){}),主要用于丢弃规则数据的类似过滤操作。参数说明:list为具体的数据集合,function(c)为具体的丢弃规则。
var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
=> [1, 3, 5]
_.every(list,function(c){}),主要用于数据的匹配,要求每个元素必须匹配,缺一不可。参数说明:list为具体的数据集合,function(c)为具体的匹配的规则。
_.every([true, 1, 'yes',!1],function(c){return c>1});
false
_.every([true, 1, 'yes',!1],function(c){return c=1});
true
_.contains(list,function(c){}),主要用于检查列表中是否包含元素。参数说明:list为具体的数据集合,function(c)为具体的包含的规则。
_.contains([1, 2, 3], 3);
=> true
_.invoke(list,methodName,*arguments),主要用于调用相关的方法。参数说明:list为具体的数据集合,可为多个数据集合执行同一个方法,methodName具体的执行的方法名称,arguments为具体的参数
_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
=> [[1, 5, 7], [1, 2, 3]]
_.pluck(list,params),主要用于列表中的对应属性的数据获取。参数说明:list为具体的数据集合,params为具体的属性名称。
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.pluck(stooges, 'name');
=> ["moe", "larry", "curly"]
_.max(list,function(c){}),主要用于列表数据的最大值的获取。参数说明:list为具体的数据集合,function(c)为具体的获取的最大值的规则。
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.max(stooges, function(stooge){ return stooge.age; });
=> {name: 'curly', age: 60};
_.max(list,function(c){}),主要用于列表数据的最小值的获取。参数说明:list为具体的数据集合,function(c)为具体的获取的最大值的规则。
var numbers = [10, 5, 100, 2, 1000];
_.min(numbers);
=> 2
_.countBy(list,function(c){}),主要用于统计集合中的某个数量。参数说明:list为具体的数据集合,function(c)为具体的统计技术的规则。
_.countBy([1, 2, 3, 4, 5], function(num) {
return num % 2 == 0 ? 'even': 'odd';
});
=> {odd: 3, even: 2}
_.shuffle(list),主要用于对数据集合进行重新随机排序。参数说明:list为具体的数据集合。
_.shuffle([1, 2, 3, 4, 5, 6]);
=> [4, 1, 6, 3, 5, 2]
调用多次显示结果如下(从英文意思看,类似于洗牌的意思。):
_.sample(list,param),主要用于从对象集合中随机取出一个数据。参数说明:list为具体的数据集合,param可以为取出随机数的个数。
_.sample([1, 2, 3, 4, 5, 6]);
=> 4 _.sample([1, 2, 3, 4, 5, 6], 3);
=> [1, 6, 2]
_.toArray(list),主要用于将对象转换为数组格式。参数说明:list为具体的数据集合。
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.size(list),主要用于获取数据集合的大小。参数说明:list为具体的数据集合。
_.size([null, 2, 3, 4, 5, 6]);
6
_.size([null, underfined, 3, 4, 5, 6]);
ReferenceError: underfined is not defined
_.size([null, underfined, 0, 4, 5, 6]);
ReferenceError: underfined is not defined
_.size([null, false,0, 4, 5, 6]);
6
数组操作
_.union(*array),主要用于数组的联合,去除重复的数据。参数说明:array为具体的数组。
_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
=> [1, 2, 3, 101, 10]
_.first(array,n),主要用于取出数组中的前n个数据。参数说明:array为具体的数组,n为取出的数据的个数。不填写n则为默认1个。
_.first([5, 4, 3, 2, 1]);
=> 5
_.initial(array,n),主要用于返回数组数据并去除末尾n个数。参数说明:array为具体的数组,n为要去掉末尾的数据个数。默认n为1个。
_.initial([5, 4, 3, 2, 1]);
=> [5, 4, 3, 2]
_.last(array,n),主要用于取出末尾n个数据。参数说明:array为具体的数组,n为要取出末尾的数据个数。默认n为1个。
_.last([5, 4, 3, 2, 1]);
=> 1
_.rest(array,index),主要用于在array中从index索引位置,开始取出数组的余下数据。参数说明:array为具体的数组,index为具体的开始索引位置。默认index为0
_.rest([5, 4, 3, 2, 1]);
=> [4, 3, 2, 1]
_.compact(array),主要用于对数组array进行false,0,null等值的过滤。参数说明:array为具体要过滤的数组。
_.compact([0, 1, false, 2, '', 3]);
=> [1, 2, 3]
_.uniq(array,property),主要用于对数组进行去除重复元素操作。参数说明:array为要去重复的数组,property为具体的字段名称。
_.uniq([1, 2, 1, 3, 1, 4]);
=> [1, 2, 3, 4]
UnderScore的使用实例记录的更多相关文章
- ORACLE AWR报告生成过程出现多个实例记录分析
在一次生成AWR报告中,发现在"Instances in this Workload Repository schema"部分,出现了多个实例记录信息(host敏感信息被用host ...
- mongodb导出导入实例记录
mongodb导出导入实例记录 平时很用mongodb,所以用到了,就需要去网上搜索方法,干脆将自己的实际经历记录下来,方便日后使用. # 大致需求 源库:db_name_mongo 源IP:192. ...
- Openstack 使用Centos官方镜像创建实例记录
Openstack 使用Centos官方镜像创建实例记录 准备centos镜像 官方地址:http://cloud.centos.org/centos/7/images 可以看到有各种版本的镜像,我在 ...
- underscore源码阅读记录
这几天有大神推荐读underscore源码,趁着项目测试的空白时间,看了一下. 整个underscore包括了常用的工具函数,下面以1.3.3源码为例分析一下. _.size = function(o ...
- 【填坑纪事】一次用System.nanoTime()填坑System.currentTimeMills()的实例记录
JDK提供了两个方法,System.currentTimeMillis()和System.nanoTime(),这两个方法都可以用来获取表征当前时间的数值.但是如果不仔细辨别这两个方法的差别和联系,在 ...
- postman tests实例记录(还没看,一些常用的)
这段时间准备测试api接口,postman这个工具很是方便,特别是里面的tests的javascript脚本. 记录一下测试接口常用的tests验证的实例. 1.设置环境变量 postman.setE ...
- log4net实现多实例记录
原文地址:实现多个LOG4NET日志记录器实例 本文内容为摘抄,请查看原文. 对于.NET Framework开发者来说,使用Log4Net进行日志记录是非常方便的,通常只要写好配置文件和简单的编码就 ...
- underscore源码阅读记录(二)
引自underscore.js context参数用法 _.each(list, iteratee, [context]); context为上下文,如果传递了context参数,则把iterator ...
- quartz 实例记录
之前介绍过了quartz的一些相关理论知识,感觉上挺简单的,实际动手操作也确实如此,去quartz的官网上把Jar包下载下来以后,会看到它的目录里有例子程序,看完第一个例子觉得还可以,但是看后面两个例 ...
随机推荐
- 弄懂 JRE、JDK、JVM 之间的区别与联系
其实很多 Java 程序员在写了很多代码后,你问他 jre 和 jdk 之间有什么关系,jvm 又是什么东西,很多人不知所云.本篇不会讲述 jvm 底层是如何与不同的系统进行交互的,而主要理清楚三者之 ...
- 用线性单元(LinearUnit)实现工资预测的Python3代码
功能:通过样本进行训练,让线性单元自己找到(这就是所谓机器学习)工资计算的规律,然后用两组数据进行测试机器是否真的get到了其中的规律. 原文链接在文尾,文章中的代码为了演示起见,仅根据工作年限来预测 ...
- ubuntu常用命令操作
建立文件夹软链接 ln -s 源文件 目标文件 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下 ...
- MAVEN自动发布更新本地和远程仓库
1.本地仓库 的更新 mvn clean package install 2.远程 仓库 的更新 mvn clean package deploy 2.1工程文件pom.xml的设置 <bu ...
- Linux OpenSSH后门的添加与防范
引言:相对于Windows,Linux操作系统的密码较难获取.不过很多Linux服务器配置了OpenSSH服务,在获取root权限的情况下,可以通过修改或者更新OpenSSH代码等方法,截取并保存其S ...
- 修正uboot网络不可用
通过使用uboot的网络功能可以更新ubook,烧写内核,文件系统,如果网络功能不可能,那还不如同变砖了一样.当然如果支持sd卡启动,可能通过sd卡完成这些功能,但是也太过麻烦了.飞凌的6410开发板 ...
- FAT32文件系统的存储组织结构(一)
对磁盘的物理结构,逻辑结构和存储结构有了比较深入的了解后,我们来仔细探讨FAT32文件系统的存储组织结构.说到文件系统的组织结构,我们应该马上意识到,这指的是文件系统在同一个分区内的组织结构,在这个话 ...
- css(外部样式表)中各种选择器(定义属性时)的优先级
今天在学css的时候遇到一个问题,用css的外部样式表改变一个<p>元素的颜色,死活就是改变不了,最后才发现是优先级的问题(我自己想当然成后面的优先级就高了,犯了经验主义错误). 先给大家 ...
- jQuery.proxy()的用法
一:参考范文一 第一次接触jQuery.proxy()时感觉这个方法不实用,不明白它到底是个什么意思.今天来将jQuery官网上的解释进行一下翻译,顺便添加自己的理解和一些示例.proxy也可称为代理 ...
- html点小图看大图最快捷的方法
方法一: <td> <a href="{$vo.show_img}" target="_blank"><img style=&qu ...