`
leon0122
  • 浏览: 45441 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ruby--Array函数

    博客分类:
  • ruby
阅读更多

函数名称

说明

示例

&     

                        

数组与,返回两数组的交集      

[1,2] & [2,3] » [2]                                               

*

 

复制数组n

[1,2]*2       » [1,2,1,2]

+

 

返回两数组的并集,但不排除重复元素

[1,2]+[2,3]    » [1,2,2,3]

<< 

 

追加元素,但不排除重复元素

[1,2]<<[2,3]   » [1,2,2,3]

|

 

追加元素,但排除重复元素

[1,2] | [2,3]    » [1,2,3]

-

 

返回第一个数组与第二个数组不同的元素

[1,2]-[2,3]    » [1]

<=>

 

比较数组

[1,2]<=>[2,3] »flase

==

 

比较数组,若所有元素均相等时返回真

[1,2]==[2,1]    »flase

assoc

 

从数组的每个元素中寻找指定对象

[[1,2],[3,4]].assoc(2) » [1,2]

at

找到数组的第N个元素

 

负数表示逆向查找

["a","b","c","d","e"].at(0) » "a"

 

["a","b","c","d","e"].at(-1)  » "e"

clear

 

删除数组中的所有元素

["a","b","c","d","e"]. clear

collect

 

collect

 

用一个过程块对数组的每个元素进行处理

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

» ["a!", "b!", "c!", "d!"] 

compact

 

compact!

 

删除值为nil的元素后生成新数组并返回它

["a",nil,"b",nil,"c",nil].compact 

 

» ["a", "b", "c"] 

delete

 

删除元素,如果元素重复,全部删除

a = [ "a", "b", "b", "b", "c" ] 

 

a.delete("b")

 

puts a    » ["a","c"]

delete_at

删除pos所指位置的元素并返回它。若pos超出数

组范围则返回nil

a = %w( ant bat cat dog ) 

 

a.delete_at(2)   » "cat" 

 

a» ["ant", "bat", "dog"] 

 

a.delete_at(99)  » nil

 

delete_if

 

根据条件删除

a = [ "a", "b", "c" ] 

 

a.delete_if {|x| x >= "b" } » ["a"] 

each

对数组的每个元素按值进行迭代操作

a = [ "a", "b", "c" ]

 

a.each {|x| print x, " -- " }

 

 »  "a -- b -- c --"

each_index

对数组的每个元素按索引进行迭代操作

a = [ "a", "b", "c" ]

a.each_index {|x| print x, " -- " }

» "0 -- 1 -- 2 --"

empty?

判断数组是否为空,为空则返回真

[].empty? » true 

eql

比较两数组是否相等

["a","b","c"].eql?(["a","b","c"]) » true 

fill

填充数组

["a","b","c","d"].fill("x") 

» ["x","x","x","x"] 

["a","b","c","d"].fill("z", 2, 2) 

» ["x", "x", "z", "z"]

first

返回数组的首元素。若没有首元素则返回nil

[ "q", "r", "s", "t" ].first    » "q"

last

返回数组末尾的元素。若数组为空时,返回nil

["w","x","y","z"].last      » "z" 

include?

判断数组中是否包含元素

a = [ "a", "b", "c" ] 

a.include?("b") » true 

a.include?("z") » false

index

返回数组中第一个==val的元素的位置

a = [ "a", "b", "c" ] 

a.index("b") »

a.index("z") » nil 

indexes

以数组形式返回其索引值与各参数值相等的元素

a = [ "a", "b", "c", "d", "e", "f", "g" ] 

a.indexes(0, 2, 4)     » ["a", "c", "e"] 

a.indexes( 2, 4, 12)    » [ "c", "e", nil] 

insert

在索引为nth的元素前面插入第2参数以后的值

ary = %w(foo bar baz)

ary.insert 2,'a','b'

p ary   » ["foo", "bar", "a", "b", "baz"]

join

将数组元素按一定的分隔符连接起来

[ "a", "b", "c" ].join » "abc" 

[ "a", "b", "c" ].join("-") » "a-b-c" 

length

size

返回数组长度。若数组为空则返回0

[1,2,3].length     » 3

[1,2,3].size       » 3

nitems

返回非nil元素的个数

[ 1, nil, 3, nil, 5 ].nitems »

pop

删除末尾元素并返回它。若数组为空则返回nil

a = [ "a", "m", "z" ] 

a.pop               » "z" 

p a                 » ["a", "m"] 

push

添加新元素

["a","b"].push(['1','2'])

» ["a", "b", ["1", "2"]]

rassoc

遍历数组每个元素(元素必须是数组),匹配索引为1的值是否与查找的字符相等,返回第一个相等的元素

a = [[15,1], [25,2], [35,2]]

p a.rassoc(2)           » [25, 2]

replace

替换数组元素

a = ["a","b"] 

a.replace(["x","y","z"])  

p a                    »["x", "y", "z"] 

reverse

reverse

将所有元素以逆序重新排列生成新数组并返回它

["a","b","c" ].reverse » ["c", "b", "a"]

rindex

返回最后一个值相等的元素的索引值

a = [ "a","b","b","b","c"] 

a.rindex("b")              »

shift

删除数组的首元素并返回它。剩余元素依次提前。若数组为空返回nil

args = ["-m","-q","filename"] 

args.shift » "-m" 

args » ["-q", "filename"] 

sort

sort!

从小到大排序

a = [ "d", "a", "e", "c", "b" ] 

a.sort   » ["a", "b", "c", "d", "e"] 

uniq

uniq

删除数组中的重复元素后生成新数组并返回它

a = [ "a", "a", "b", "b", "c" ] 

a.uniq      » ["a", "b", "c"] 

unshift

在数组第一个元素前添加元素

a = [ "b", "c", "d" ] 

a.unshift("a")   » ["a", "b", "c", "d"] 

to_s

将数组的所有元素连接成字符串

["a","e","i","o"].to_s     » "aeio" 

分享到:
评论

相关推荐

    ruby-2.3.0

    这对于函数式编程风格的Ruby代码来说是个巨大的提升,尤其是在使用`Array#map`、`Array#select`等方法时。 ```ruby numbers = [1, 2, 3, 4] squared = numbers.map(&:square) # 使用 & 符号将 :square 转换为 Proc ...

    ruby-1.8.7-p72-i386-mswin32.zip

    用户可以通过man命令查看这些帮助文档,学习如何使用Ruby的内置函数和命令。 4. **bin**:这是存放可执行文件的地方,包括Ruby解释器(如`ruby.exe`)以及其他可能的命令行工具,比如用于编译Ruby源代码的`rubycc`...

    Ruby - Ruby for Rails

    - **核心类库**:探讨 Ruby 的核心类库,包括 Array、Hash、String 等类的功能及用法。 - **常用方法**:总结常用的核心类方法,如 map、select、each 等。 #### 3.2 标量对象 - **数值类型**:讲解数值类型(如 ...

    ruby-使用ruby实现的算法之冒泡排序.zip

    这段代码中,`bubble_sort`函数接收一个数组作为参数,通过外层的`loop`循环控制排序过程,内层的`(n - 1).times`循环则负责逐对比较相邻元素。`swapped`变量用于检测是否在当前遍历过程中发生了元素交换,如果没有...

    ruby-2.7.1.zip

    现在,当块(block)返回多值时,可以使用一个变量列表来接收这些值,类似于函数调用的多重赋值。这提高了代码的可读性和简洁性。 Ruby 2.7.1对语法也进行了一些改进,例如弃用了`Hash#default`方法的旧用法,鼓励...

    Ruby-编程基础阅读物主要是Ruby示例

    5. **数据结构**:Ruby内建了丰富的数据结构,如数组(Array)、哈希(Hash)、集合(Set)、队列(Queue)等。理解如何有效使用这些数据结构对于编写高效代码至关重要。 6. **算法**:算法是解决问题的步骤和方法...

    is-whole-number-array-源码.rar

    标题中的“is-whole-number-array”暗示我们关注的是一个与检查数组是否全由整数构成相关的编程问题。从描述和压缩包文件名来看,我们很可能将深入探讨一段用于实现这一功能的源代码。由于标签部分为空,我们无法...

    Ruby-Snippets:少量的Ruby代码

    Ruby还提供了块(block)、 Proc 和 Lambda,它们是实现迭代和函数式编程的重要工具。块可以通过`do..end`或者花括号`{}`定义,Proc和Lambda则可以捕获和存储块,像函数一样调用。 此外,文件名列表中的"Ruby-...

    RUBY语言入门教程

    - **语法特点**:RUBY的语法简洁明了,易于学习,同时支持多种编程范式,包括面向对象、函数式以及元编程等。 - **应用场景**:广泛应用于Web开发(如Rails框架)、系统管理工具、服务器自动化脚本、图形用户界面等...

    函数式-确定性-Ruby取笑___下载.zip

    4. **映射(Map)**:在Ruby中,Array类提供了`map`方法,可以对数组的每个元素应用一个函数,然后返回一个新的数组,包含了应用函数后的结果。这是函数式编程中常见的操作。 5. **过滤(Filter)**:`select`或`...

    ruby-treinamento:Ruby语言的通用范例程序

    在Ruby中,基础的数据结构包括数组(Array)、哈希(Hash)和范围(Range)。数组是有序元素的集合,支持索引访问;哈希则是一组键值对,通过键来查找对应的值;范围可以表示一组连续的数值,比如1..10,提供了迭代...

    ruby语言入门教程-自学笔记

    方法(函数) 在Ruby中,方法是定义在类或模块中的代码块,用于执行特定任务。方法可以通过类名或对象实例来调用。 示例代码: ```ruby # 定义一个方法 def greet(name) puts "Hello, #{name}!" end # 调用...

    ruby实用函数和实例

    Ruby还包含了一些其他重要的实用函数,如Array和Hash的内置方法。Array类提供了如`map`, `each`, `select`等方法,用于迭代和操作数组元素。Hash类允许键值对存储,其方法如`fetch`, `merge`, `keys`, `values`等能...

    ruby-enumerables-introduction-to-map-and-reduce-lab-dumbo-web-102819

    尽管Hash函数还具有遵循“可枚举方法的字符”的方法,但是为了易于学习,我们将仅关注Array 。定义map 如“可枚举的字符”中所述,我们需要访问集合的每个成员。 这是所有Enumerable方法所共有的。 对于map

    Ruby-homework

    Ruby也支持函数式编程概念,如块(Block)、 Proc 和 Lambda,它们提供了一种处理集合数据的方式。 3. **面向对象编程**:Ruby是纯面向对象的语言,每个值都是一个对象,包括基本数据类型。你可以为这些对象定义...

    ruby-enumerables-introduction-to-map-and-reduce-lab-online-web-prework

    尽管Hash函数还具有遵循“可枚举方法的字符”的方法,但是为了易于学习,我们将仅关注Array 。 定义map 如“可枚举字符”中所述,我们需要访问集合的每个成员。 这是所有Enumerable方法所共有的。 对于map

    learning-ruby.

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

    ruby-enumerables-introduction-to-map-and-reduce-lab-den01-seng-ft-081720

    尽管Hash函数还具有遵循“可枚举方法的字符”的方法,但是为了易于学习,我们将仅关注Array 。 定义map 如“可枚举字符”中所述,我们需要访问集合的每个成员。 这是所有Enumerable方法所共有的。 对于map

    Ruby编程Ruby Programming

    - 数组(Array) - 哈希(Hash) - 数字(Numeric) - 布尔值(Boolean) #### 2.2 控制结构 - **条件语句**:`if`、`elsif`、`else` - **循环结构**:`for`、`while`、`until` - **流程控制**:`break`、`next...

    Judy Arrays for Ruby-开源

    然后,在代码中引入库并根据需求调用相应的函数。例如,创建一个Judy Array,插入元素,以及查询元素是否存在,都是通过RJudy提供的接口完成的。 总的来说,RJudy为Ruby社区提供了一种高效的数据结构选择,它在处理...

Global site tag (gtag.js) - Google Analytics