underscore学习笔记—集合函数/collections(一)
来源:互联网 发布:大数据 零售业思路 编辑:程序博客网 时间:2024/05/16 13:50
写在前面:
1.5.2版本,计24个函数
集合函数能在数组、对象和类数组对象,如arguments、NodeList和类似的数据类型上工作,要避免传递一个不固定length属性的对象
list:待遍历的集合对象
literator:迭代器,即转换函数
memo:初始值
官方下载地址(最新版本)
1、each _.each(list, iterator, [context])
遍历list中所有元素,并按顺序遍历输出每个元素。如果传递context,则把iterator绑定到context对象上。调用iterator会传递三个参数(element, index, list),若list为对象,则参数为(value, key, list)
_.each([1, 2, 3], alert);=> alerts each number in turn..._.each({one: 1, two: 2, three: 3}, alert);=> alerts each number value in turn...
ps:每次输出的都是值,而不是键
2、map _.map(list, iterator, [context])
通过iterator将list中的每个值映射到一个新的数组中,产生一个新的数组,迭代器参数(value, key, list)
_.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]
ps:可以将返回值赋值给一个变量使用
3、reduce _.reduce(list, iterator, memo, [context])
别名为inject和foldl,reduce会把list中元素归结为一个单独的数值,reduce的每一步需要由迭代器返回,这个迭代器参数(memo, value, index或key, list)
var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);=> 6
4、reduceRight _.reduceRight(list, iterator, memo, [context])
从右侧开始组合元素reduce函数。
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]
5、find _.find(list, iterator, [context])
遍历list,返回第一个通过迭代器检测为真值的元素值,如果没有返回undefined,找到后停止遍历,立即返回。
var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });=> 2
6、filter _.filter(list, iterator, [context])
遍历list,返回所有通过迭代器检测为真值的元素值组成的数组。
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });=> [2, 4, 6]
7、where _.where(list, properties)
遍历list中的每一个值,返回一个包含properties所列出属性所有键值对的新数组
var listOfPlays = [{title: 'aaa',author: "Shakespeare", year: 1611},{title: 'bbb',author: "Shakespeare", year: 1611}]; var arr2=_.findWhere(listOfPlays, {author: "Shakespeare", year: 1611}); => {{title: 'aaa',author: "Shakespeare", year: 1611},{title: 'bbb',author: "Shakespeare", year: 1611}}8、findWhere _.findWhere(list, properties)
同where类似,只是返回匹配properties的第一值,若没有匹配到,或者list为空,则返回undefined
var listOfPlays = [{title: 'aaa',author: "Shakespeare", year: 1611},{title: 'bbb',author: "Shakespeare", year: 1611}]; var arr2=_.findWhere(listOfPlays, {author: "Shakespeare", year: 1611});{title: "aaa", author: "Shakespeare", year: 1611}
9、reject _.reject(list, iterator, [context])
返回list中没有通过迭代器真值检测的元素集合,与filter相反
var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });=> [1, 3, 5]
10、every _.every(list, [iterator], [context])
如果list中的所有元素都通过迭代器的真值检测就返回true
_.every([true, 1, null, 'yes'], _.identity);=>false
11、some _.some(list, [iterator], [context])
如果list中任何一个元素通过迭代器真值检测就返回true,一旦找到符合条件的元素,就终止遍历
_.some([null, 0, 'yes', false]);=>true
12、contains _.contains(list, value)
如果list中包含指定value则返回true
_.contains([1, 2, 3], 3);=>true
- underscore学习笔记—集合函数/collections(一)
- underscore学习笔记—集合函数/collections(二)
- underscore学习笔记—对象函数/Objects(一)
- underscore学习笔记—对象函数/Objects(二)
- underscore学习笔记—数组函数/Arrays
- underscore学习笔记—与函数有关的函数/Function
- Scala学习笔记5 (集合 Collections)
- Scala学习笔记5 (集合 Collections)
- Scala学习笔记5 (集合 Collections)
- Scala学习笔记5 (集合 Collections)
- Scala学习笔记5 (集合 Collections)
- Scala学习笔记5 (集合 Collections)
- Commons Collections学习笔记(一)
- underscore学习笔记—实用功能/Utility
- underscore学习笔记—链式语法/Chaining
- underscore学习笔记—更新日志
- underscore源码学习笔记(1)
- Java笔记 - 集合(Collections)
- Android AIDL使用详解
- 【异常】Could not find class 'javax.activation.DataHandler'
- BI只是一种解决方案
- DNS 服务器地址 全国可用 全世界可用 全网络可用dns google dns
- 项目导入eclipse工作区间后,java中文乱码解决方法
- underscore学习笔记—集合函数/collections(一)
- 河南省第六届程序设计竞赛--异 形 卵
- u-boot移植 ( 六 )
- 电脑定时开、关机和自动登录设置
- php 用csv文件导出大量数据初方案
- 手工释放meminfo中的cache
- Sql Server统计表中某年某月某个值有多少?
- Unable to handle 'index' format version '2', please update rosdistro的解决办法
- Eclipse中Build Workspace 优化