Ruby中的数组过滤

转载 2007年09月25日 22:12:00

数组可以算是计算机编程中用到的最多的一个数据结构了,ruby中也是如此,这次我们来看看如何对数组中的项进行过滤,选出自己需要的项。

首先,假如有一个包含人名的数组:

  1. >>  name = %w{ zhangsan lisi wangwu zhaoliu galeki lyanry liulanger xiaosl tom nick bara}
  2. => ["zhangsan","lisi","wangwu","zhaoliu","lyanry","liulanger","xiaosl","tom","nick","bara" ]

假如我们现在要把4个字母的名字选出来,要怎么做呢?

像其他语言一样,写个for循环,遍历每一项,如果长度为4就选出来?

ruby有更好的办法,只需要一行:

  1. >>  name.find_all{|n| n.length == 4}
  2. => ["lisi", "nick", "bara"]

find_all 方法配合后面的block,简洁明了的筛选出了符合条件的数组项。如果我们要从数组中剔除某些项,要用到 reject 方法:

  1. >>  name.reject{|n| n.length == 4}
  2. => ["zhangsan", "wangwu", "zhaoliu", "galeki", "lyanry", "liulanger", "xiaosl", "tom"]

block 中也可以复合多个条件:

  1. >>  name.find_all{|n| n.length>3 && n.length <8 && n[0,1] == "z"}
  2. => ["zhaoliu"]

以上语句从数组中筛选出长度大于3,小于8,并且首字母为z的名字,依旧简洁明了,忽略效率的因素,我们甚至可以把ruby中的数组当作数据库来查询了

 

相关文章推荐

ruby 数组处理大全.doc

  • 2013年10月15日 13:24
  • 83KB
  • 下载

Ruby 中数组的常用操作

企业级开发中很多时候,并不是去操作项目框架,更多的时候我们是了解业务逻辑然后去操作数据的增删该查。今天就Ruby 中操作数组的方法进行总结。感谢新浪小边边的博客数组的创建和初始化a = Array.[...

ruby的数组操作

ruby语言的内置数据结构强大到让我震惊。下面展示了ruby数组的部分魔力 1. & [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] # => [1, 3] 取两...
  • sean_cd
  • sean_cd
  • 2012年01月11日 13:13
  • 178

庞果网在线编程之数组排序ruby解答

题目地址:http://hero.pongo.cn/Question/Details?ID=94&ExamID=92 这个问题有些头疼,主要是不知到是否需要通过递归比较等找出每一种走法后再找出步数...

ruby中数组的常用函数

在程序中定义一个数组 在程序中定义一个数组,因为我们在下面说明。 fruits = ["apple", "orange", "lemon"] scores = [55, 49, 100, 15...
  • jiedushi
  • jiedushi
  • 2013年01月22日 11:01
  • 11274

ruby 的数组操作

1. &  [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] # => [1, 3]  取两个数组中都有的元素,但只取一个,不重复取。  2. *  [ 1, 2, 3...

Ruby数组的操作

1. & [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] # => [1, 3] 取两个数组中都有的元素,但只取一个,不重复取。 2. * [ 1, 2, 3 ] * 3 # => ...

ruby学习笔记之数组学习(二)

Array 类说明 函数名称 说明 示例 & 数组与,返回两数组的交集(得到的结果顺序以前一个顺序为准,看例子) [ 1,2...

ruby 数组 习惯用法

函数名称 说明 示例 &                               数组与,返回两数组的交集       [1,2] &...

ruby 数组的使用

01.数组的创建和初始化 a = Array.[](1,2,3,4) b = Array[1,2,3,4] c = [1,2,3,4] d = Array.new #创建一个空数组 e = Array...
  • li_001
  • li_001
  • 2017年02月23日 17:09
  • 264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ruby中的数组过滤
举报原因:
原因补充:

(最多只允许输入30个字)