Ruby中数组的遍历
转自:http://www.jianshu.com/p/8de9b60f9350
Ruby中有几个常用的遍历数组的方法,本人经常容易搞混。这里列出来总结一下。
each: 从数组中取出一个元素,作为某个方法的参数。返回未修改的数组本身。irb> [1,3,5,7,9].each { |item| puts item+'!'}
=> 1!3!5!7!9!map(collect): 对数组中的每一个元素都执行一个相同的操作。数组本身并不被修改(map!和collect!原地进行修改),返回一个修改后的原数组的拷贝。irb> [1,3,5,7,9].map { |item| item + 1 }
=> [2,4,6,8,10]inject(reduce): 对应上面的map,对数组进行规约。irb> [1,2,3,4,5,6,7,8,9,10].inject(0) { |sum,e| sum += e }
=> 55 #以0为初值进行规约,规约运算为加法select(detect):使用某种布尔运算,对数组进行筛选。返回筛选后剩下的结果集。irb> [1,2,3,4,5,6,7,8,9,10].select {|item| item.even? }
=> [2,4,6,8,10]reject: 和select的逻辑相反。irb> [1,2,3,4,5,6,7,8,9,10].reject {|item| item.even? }
=> [1,3,5,7,9]
Ruby中数组的遍历的更多相关文章
- Ruby 集合数组常用遍历方法
		
迭代器简介 先简单介绍一下迭代器. 1.一个Ruby迭代器就是一个简单的能接收代码块的方法(比如each这个方法就是一个迭代器).特征:如果一个方法里包含了yield调用,那这个方法肯定是迭代器: 2 ...
 - Java 中数组的遍历方式
		
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 今天我们就来说一下在java中遍历数组都有哪几 ...
 - ruby中数组的常用方法----例子
		
#初始化 a = Array.new p a #=>[] a = Array.new(5) p a #=>[nil, nil, nil, nil, nil] a = Array.new(5 ...
 - Ruby中数组的&操作
		
最近在忙一个项目,好久没有写日志了,项目终于接近尾声,可以适当放松一下,所以记一下在这个项目中发现的有趣事情: 数组的 与 操作 一直以为两个数组A和B相与,谁前谁后都一样,不过这次在项目中突然想试一 ...
 - 【转载】ruby 中数组函数示例(1)(转)
		
函数名称 说明 示例 & 数组与,返回两数组的交集 [1,2] & [2,3] =>[2] * 复制数组n次 [1,2]*2 => [1,2,1, ...
 - Java中数组的遍历
		
(I)标准for循环遍历数组 例如代码片段: int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9}; for(int i=0;i<11;i++){ Sys ...
 - ruby中数组的常用函数
		
在程序中定义一个数组 在程序中定义一个数组,因为我们在下面说明. fruits = ["apple", "orange", "lemon"] ...
 - es5中数组的遍历方法
		
//for循环 const arr = [1,2,3,4,5] for(let i = 0; i < arr.length; i++){ if(arr[i] === 2){ //break // ...
 - ruby中数组认识
		
a = 1...5这样赋值,a不是数组类型,1...5操作是一种枚举类型. a = ["1","2","3","4"], ...
 
随机推荐
- codeforces 354 div2 C Vasya and String 前缀和
			
C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard ...
 - Android反射机制:手把手教你实现反射
			
什么是反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称 ...
 - 【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?
			
原文链接:http://www.51testing.com/html/49/n-3721249.html 前言 当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?loc ...
 - 2018-2019-2 网络对抗技术 20165332 Exp3 免杀原理与实践
			
2018-2019-2 网络对抗技术 20165332 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
 - 2243: [SDOI2011]染色  树链剖分+线段树染色
			
给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如“112221”由3段组 ...
 - 本田CB750型加速时发动机工作间歇
			
本田CB750型加速时发动机工作间歇 [故陣现象]近期以来,该车发动机工作无力,加速时发 动机工作不连续. [原因分析]起动发动机试验,发动机起动困难,怠速时 抖动严重,加速反应缓慢,工作间歇,声音沉 ...
 - java并发编程:线程安全管理类--原子操作类--AtomicBoolean
			
1.类AtomicBoolean
 - 关于将vector以及string传递给较老的api的问题
			
现在可能STL使用的越来越多,但是一些较老的api并不支持例如vector这样的兑现,但是可以使用一些技巧来使其适应于这些函数. 例如对于使用到int*型的函数来说,传入一个 &vector[ ...
 - Thunder7.2.13.3884 JayXon
			
更新日志: 更新迅雷7. 更新VipService 2.7 更新SQLite 更新zlib 不再精简msvcr71.dll.msvcp71.dll 不再精简64位BHO 破解了本地离线重命名30个字符 ...
 - 网站微信登录-python 实现
			
最近微信登录开放公测,为了方便微信用户使用,我们的产品也决定加上微信登录功能,然后就有了这篇笔记. 根据需求选择相应的登录方式 微信现在提供两种登录接入方式 移动应用微信登录 网站应用微信登录 这里我 ...