`

ruby 常用的数组操作

 
阅读更多
1. &

[ 1, 1, 3, 5 ] & [ 1, 2, 3 ] # => [1, 3]

取两个数组中都有的元素,但只取一个,不重复取。

2. *

[ 1, 2, 3 ] * 3 # => [1, 2, 3, 1, 2, 3, 1, 2, 3]

如果*号后面跟的是数字n,将原先数组中的所有元素重复n次,串联起来。相当于普通数字的乘法操作。

[ 1, 2, 3 ] * "--" # => "1--2--3"

如果*号后面跟的是字符串,也将返回字符串。

3. +

[ 1, 2, 3 ] + [1, 4, 5 ] # => [1, 2, 3, 1, 4, 5]

简单的将两个数组连接在一起,不删除重复元素。

4. -

[ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ]
# => [3, 3, 5]

从第一个数组中删除所有出现在第二给数组中的元素。

5. <<

[ 1, 2 ] << "c" << "d" << [ 3, 4 ] << [3, 4]
# => [1, 2, "c", "d", [3, 4], [3, 4]]

在数组末尾添加新元素,也不管重复不重复。

6. ==

[ "a", "c" ] == [ "a", "c", 7 ] # => false
[ "a", "c", 7 ] == [ "a", "c", 7 ] # => true
[ "a", "c", 7 ] == [ "a", "d", "f" ] # => false

判断两个数组是否相等——数组相等的前提是,数组所有元素相等,数组大小也当然相等。

7. |

[ "a", "b", "c" ] | [ "c", "d", "a" ]
# => ["a", "b", "c", "d"]

取两个数组中所有元素组成的集合,删除重复元素。

8. at

a = [ "a", "b", "c", "d", "e" ]
a.at(0) # => "a"
a.at(-1) # => "e"
a.at(5) # => nil

取回某个索引中的元素,倒数第一个索引是-1,第二个是-2。

9. clear

a = [ "a", "b", "c", "d", "e" ]
a.clear # => []

删除数组中的所有元素

10. collect!

a = [ "a", "b", "c", "d" ]
a.collect! {|x| x + "$" } # => ["a$", "b$", "c$", "d$"]
a # => ["a$", "b$", "c$", "d$"]

对数组中的每一个元素进行遍历,block中对元素的操作将改变元素的值。

11. compact

[ "a", nil, "b", nil, "c", nil ].compact # => ["a", "b", "c"]

删除数组中所有值为nil的元素,也即压缩数组。

12. concat

[ "a", "b" ].concat( ["c", "d"] ) # => ["a", "b", "c", "d"]

将第二个数组中的元素添加在第一个数组末尾,组成新数组。

13. count

[1, 2, 3, 4].count(3) # => 1
[1, 2, 3,3, 4].count(3) # => 2
[1, 2, 3, 4].count {|obj| obj > 2 } # => 2

计算数组中等于某个值的元素有几个。

14. delete

a = [ "a", "b", "b", "b", "c" ]
a.delete("b") # => "b"
a # => ["a", "c"]
a.delete("z") # => nil
a.delete("z") { "not found" } # => "not found"

删除数组中值为某个给定值的元素。

15. each

a = [ "a", "b", "c" ]
a.each {|x| print x, " -- " }
result :
a -- b -- c --

遍历数组,打印元素值。

16. each_index

a = [ "a", "b", "c" ]
a.each_index {|x| print x, " -- " }
result :
0 -- 1 -- 2 --

遍历数组,打印索引。

17. empty?

[].empty? # => true
[ 1, 2, 3 ].empty? # => false

判断数组是否为空。

18. join

[ "a", "b", "c" ].join # => "abc"
[ "a", "b", "c" ].join("-") # => "a-b-c"

将数组中的元素连接成字符串。如果给定参数,则在每个元素直接加入该参数。

19. last

[ "w", "x", "y", "z" ].last # => "z"
[ "w", "x", "y", "z" ].last(1) # => ["z"]
[ "w", "x", "y", "z" ].last(3) # => ["x", "y", "z"]

如果不给定参数,取最后一个元素。如果给定参数n,取最后n个参数组成数组。

20. length

[ 1, nil, 3, nil, 5 ].length # => 5

长度。空元素nil也算元素,计算在长度范围内。

21. pop

a = %w{ f r a b j o u s }
a.pop # => "s"
a # => ["f", "r", "a", "b", "j", "o", "u"]
a.pop(3) # => ["j", "o", "u"]
a # => ["f", "r", "a", "b"]

返回删除了最后n个元素后的数组。

22. push

a = [ "a", "b", "c" ]
a.push("d", "e", "f") # => ["a", "b", "c", "d", "e", "f"]

在数组末尾插入元素。

23. replace

a = [ "a", "b", "c", "d", "e" ]
a.replace([ "x", "y", "z" ]) # => ["x", "y", "z"]
a # => ["x", "y", "z"]

用新数组替换旧数组。

24. reverse

[ "a", "b", "c" ].reverse # => ["c", "b", "a"]
[ 1 ].reverse # => [1]

反转数组。

25. shift

args = [ "-m", "-q", "-v", "filename" ]
args.shift # => "-m"
args.shift(2) # => ["-q", "-v"]
args # => ["filename"]

从数组头部删除n个元素,并将他们返回。若删除的是一个,则返回字符串。若删除两个以上元素,则返回这n个组成的新数组。原数组被改变。

26. unshift

a = [ "b", "c", "d" ]
a.unshift("a") # => ["a", "b", "c", "d"]
a.unshift(1, 2) # => [1, 2, "a", "b", "c", "d"]

在头部加入元素,原数组元素往后移。

27. shuffle

[ 1, 2, 3, 4, 5, 1 ].shuffle # => [5, 1, 3, 4, 1, 2]

将原数组随机打乱。

28. sort

a = [ "d", "a", "e", "c", "b" ]
a.sort! # => ["a", "b", "c", "d", "e"]
a # => ["a", "b", "c", "d", "e"]

返回排序好的数组。

29. values_at

a = %w{ a b c d e f }
a.values_at(1, 3, 5) # => ["b", "d", "f"]
a.values_at(1, 3, 5, 7) # => ["b", "d", "f", nil]
a.values_at(-1, -3, -5, -7) # => ["f", "d", "b", nil]
a.values_at(1..3, 2...5) # => ["b", "c", "d", "c", "d", "e"]

一次取回多个索引位置的值。

30. uniq

a = [ "a", "a", "b", "b", "c" ]
a.uniq # => ["a", "b", "c"]

返回数组中不同的元素。原数组不受影响。
1
分享到:
评论

相关推荐

    Ruby创建数组方法总结

    本文将详细介绍Ruby中创建数组的几种方法,以及如何访问和操作数组的元素。 首先,创建一个空数组是通过`Array.new`方法实现的。例如,`array = Array.new`将创建一个空数组,并将其赋值给变量`array`。这样做的...

    10Ruby 数组.docx

    通过本文,我们深入了解了 Ruby 数组的基本概念、创建方式以及常用的操作方法。Ruby 数组作为一种灵活的数据结构,在实际开发中扮演着重要角色,无论是处理数据还是实现特定逻辑功能,都离不开对数组的有效管理和...

    ruby数组

    在Ruby数组中,元素可以通过索引来访问和操作,索引通常从0开始。 ### 数组创建 Ruby提供多种创建数组的方法。最常见的是通过方括号`[]`来创建,例如: ```ruby arr = [1, 2, 3, "four", true] # 创建包含不同类型...

    Ruby中数组的一些相关使用方法

    这篇文章将深入介绍Ruby数组的一些核心概念和使用方法。 首先,Ruby数组是有序的,这意味着每个元素都有一个唯一的整数索引与之关联。数组的索引从0开始,就像C或Java语言一样。此外,Ruby还支持负数索引,-1表示...

    ruby 数组使用教程

    2. **数组操作**:数组支持数学运算,如加法和乘法。加法操作符`+`用于合并两个数组,如`ary + [“foo”, “bar”]`将两个数组连接成一个新的数组。乘法操作符`*`用于重复数组,`ary * 2`会将数组ary复制一份并拼接...

    ruby对excel的操作 详细操作

    在Ruby中操作Excel文件主要是通过`win32ole`库来实现的,这个库允许Ruby程序与Windows操作系统中的Office应用程序进行交互,如Microsoft Excel。以下是关于如何使用Ruby操作Excel的详细步骤和知识点: 1. **引入win...

    ruby参考速查--ruby常用类参考

    本文档的"Ruby参考速查"部分,主要关注Ruby中常用的类及其方法,为Ruby开发者提供了一个快速查阅的资源。 首先,我们来看`Array`类,它是Ruby中最常见的数据结构之一,用于存储有序的元素集合。Array类包含了许多...

    Ruby常用文件操作方法

    下面将详细阐述Ruby中的这些常用文件操作方法。 一、新建文件 在Ruby中,新建文件通常使用`File.new`方法。以下是一个示例: ```ruby f = File.new(File.join("C:", "Test.txt"), "w+") f.puts("I am Jack") f.puts...

    Ruby自学笔记

    具体操作时,使用星号(*)操作符配合Hash构造函数可以实现数组到Hash的转换。 在Ruby的方法中,如果方法名末尾带有感叹号(!),表示该方法会改变原有对象的值,相反,如果不带有感叹号,则会创建一个新的对象进行返回...

    Ruby中的数组和散列表的使用详解

    在Ruby编程语言中,数组(Arrays)和散列表(Hashes)是两种非常重要的数据结构,它们用于存储和管理对象的集合。数组以整数为索引,而散列表则使用任意对象作为键。这两者都是动态调整大小的,允许在需要时添加新的...

    Ruby Data-Processing ruby数据处理

    1. **Ruby Map**: Map函数允许我们将一个操作应用到数组或集合中的每一个元素上,然后返回一个新的数组,包含应用操作后的结果。例如,如果你有一个数组包含数字,你可以用map来将每个元素平方: ```ruby numbers...

    Programming-Ruby-1.9源代码

    - 集合操作如查找、排序、合并、过滤等,源代码会提供各种实例,帮助理解Ruby的数组和哈希操作的强大。 6. **文件和I/O** - 文件读写操作,如`File.open`,以及流处理,源代码将展示如何进行文件操作。 - 标准...

    learning-ruby.

    此外,Ruby还有数组(Array)和哈希(Hash)等复合数据类型。 2. **控制结构**:Ruby中的控制结构包括条件语句(如if/else,case/when)、循环(如for,while,until,each)以及流程控制语句(如break, next, ...

    rubyonrails+Ruby+取得指定月日期数方法

    在 Ruby on Rails 开发中,处理日期和时间是常用的操作之一。本文将介绍如何在 Ruby 环境下,结合 Ruby on Rails,获取指定月份的所有日期数。 首先,我们需要知道 Ruby 语言中处理日期的库是 `Date` 类,该类属于 ...

    Ruby教程之注释、变量声明以及数组操作

    D瓜哥在学Ruby,正好也写一篇“Ruby入门教程”。需要说明一下,这篇文章适合有编程基础的,但是没接触过Ruby的新手。而且,这篇文章侧重入门,老鸟可以直接飞过。(如果能帮忙检查一下是否有描述不当,甚至错误的...

    Ruby完全自学手册光盘里的源代码

    5. 集合与迭代器:Ruby的数组和哈希提供了丰富的操作方法,源代码将展示如何添加、删除元素,以及如何使用迭代器遍历集合。 6. 异常处理:在源代码中,你还会发现如何使用begin/rescue/ensure来捕获和处理程序运行...

    Ruby基础教程(中文第4版)

    此外,书中还会涵盖Ruby的数组、哈希、字符串和正则表达式等数据结构,以及文件和目录操作。Ruby的标准库提供了丰富的功能,如网络通信、XML解析、数据库连接等,书中也会有相应介绍。 最后,对于新手来说,了解...

    Ruby 教程 The Book of Ruby

    - 常用的Ruby库与框架 - Gem管理工具的使用 - 社区资源与开发工具推荐 #### 四、特色与亮点 - **实战导向**:本书通过丰富的实例演示Ruby的各项功能,帮助读者在实践中学习。 - **深入浅出**:作者Huw ...

    ruby写的命令行操作文件系统(初学)

    在Ruby编程语言中,命令行操作文件系统是基础但至关重要的技能。这涉及到与操作系统进行交互,包括创建、读取、写入、移动和删除文件及目录。Ruby提供了丰富的内置库,如`File`和`Dir`,使得这些操作变得简单易懂。...

Global site tag (gtag.js) - Google Analytics