Ruby-数组

=begin
      数组,是有序的,基于整数引索的任意对象的集合;索引起始为0  -1为最后一个元素
=end

#数组的用法----如何获取数组中的元素
arr = [1, 2, 3, 4, 5, 6]
arr[2]            #输出第三个数组中的元素:3
arr[100]          #无法输出超出数组长度的元素:nil
arr[-3]           #输出倒数组中数倒数第三的元素:4
arr[2,3]          #输出从第三个元素开始三个长度的元素:[3,4,5]
arr[1 .. 4]       #输出包括第二个元素到第五个之间的所有元素:[2,3,4,5]
arr[1 .. -3]      #输出包括正数第二个元素到到倒数第三个元素之间的所有元素:[2,3,4]
arr.at(0)         #输出数组中第一个元素:1
arr.fetch(1)      #输出数组中第二个元素:2
arr.take(3)       #输出数组中前三个元素:[1,2,3]
arr.drop(3)       #丢弃数组中前三个元素后剩下的元素,不会修改数组本身:[4,5,6]

#数组的用法----获取数组的信息
arr.length        #输出数组中元素的长度(个数):6
arr.count         #输出数组中元素的个数(长度):6
arr.empty?        #判断数组是否为空:false
arr.include?(6)   #判断该对象是否为数组中的元素:true

#修改数组----向数组中增加元素
arr = [1, 2, 3, 4]
arr.push(5)                       #向数组末尾插入一个元素:[1,2,3,4,5]
arr << 6                          #同上,向数组末尾插入一个元素:[1,2,3,4,5,6]
arr.unshift(0)                    #在数组的起始位置插入一个元素:[0,1,2,3,4,5,6]
arr.insert(3, "heiheihei")        #在数组第三个元素后面插入一个元素,使之成为第四个元素,新元素索引位置为3:[0,1,2,"heiheihei",3,4,5,6]
arr[8] = 7                        #在索引位置为8的位置插入(修改)一个元素:[0,1,2,"heiheihei",3,4,5,6,7]

#修改数组----删减数组中的元素
arr = [1, 2, 3, 4, 5, 6]
arr.pop           #删除数组的最后一个元素:[1,2,3,4,5]
arr.shift         #删除数组中的第一个元素:[2,3,4,5]
arr.delete_at(2)  #删除数组中索引位置为2的元素,:[2,3,5]
arr.delete(2)     #删除数组中的元素2:[3,5]

arr = [1, 1, 2, 2, 3, 3, nil]
arr.uniq          #删除数组中重复的元素并输出,不会修改数组本身:[1,2,3,nil]
arr.compact       #删除数组中显示出的nil元素并输出,不会修改数组本身:[1,1,2,2,3,3]

#数组的用法----遍历数组
arr = [1, 2, 3, 4, 5, 6]
arr.each{ |x| puts x }                #按顺序遍历数组中的元素(方法一): 1\n2\n3\n4\n5\n6\n
arr.each do |x|
  puts x
end                                   #按顺序遍历数组中的元素(方法二):1\n2\n3\n4\n5\n6\n
arr.reverse_each { |x| puts x }       #逆序遍历数组中的元素:6\n5\n4\n3\n2\n1\n
arr.map { |x| x * 2 }                 #接受一个块,对特定的元素进行单独的操作,需要赋值给一个新的变量,不会修改数组本身:[2,4,6,8,10,12]
arr.select { |x| x > 4 }              #在数组中筛选出值大于4的的元素,需要赋值给一个新的变量,不会修改数组本身:[5,6]
arr.reject { |x| x > 4}               #在数组中筛掉值大于4的元素,需要赋值给一个新的变量,不会修改数组本身:[1,2,3,4]

arr = [1, 2, 3, 4, 3, 2, 1]
arr.drop_while { |x| x < 3 }          #删除最先一次数组中满足条件的的元素,不会修改数组本身:[3,4,3,2,1]
arr.delete_if { |x| x < 3 }           #删除数组中所有满足条件的元素:[3,4,3]

arr = [1, 2, 3, 4, 3, 2, 1]
arr.keep_if { |x| x > 3}              #只输出满足条件的元素:[4]
时间: 2024-11-03 21:06:07

Ruby-数组的相关文章

Ruby快速入门

Rb是什么 ? 交互式Ruby(IRB)为实验提供了一个shell.内置IRB shell,你可以立即一行行查看表达式的结果.该工具自带Ruby安装,所以你必须做一些额外的IRB工作无关.只需键入在命令提示符IRB和交互式Ruby会话将启动. Ruby语法: Ruby代码一般忽略空白字符,如空格和制表符,除非当他们出现在字符串. Ruby的解释分号作为语句的结尾换行符.但是,如果ruby遇到运算符,如+, - ,或在一行的末尾的反斜杠,他们的声明中表示延续. 标识符名称的变量,常量和方法. Ru

ruby基本语法(2)

关于数组 Ruby数组中的数据类型可以不相同并且长度也是可变的.(好聪明啊感觉用的久了就会变笨了,除非你本来就是老手)比如下面的例子 Myarray=[1,2,“ruby”] Ruby也支持那种-1的表示,比如 arry=[1,2,"ruby"] puts arry[-4] puts arry[-3] puts arry[-2] puts arry[-1] puts arry[0] puts arry[1] puts arry[2] puts arry[3] 输出: 1 2 ruby

Ruby 教程

Ruby 教程python-miniRuby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发.在 Ruby 社区,松本也被称为马茨(Matz).Ruby 可运行于多种平台,如 Windows.MAC OS 和 UNIX 的各种版本.学习本教程,您将对 Ruby 有一个全面的了解.现在开始学习 Ruby!谁适合阅读本教程?本教程有助于初学者理解 Ruby 语言基础知识及基本概念.阅读

Ruby初探

官方网站:https://www.ruby-lang.org/zh_cn/ 标准库API文档:http://ruby-doc.org/stdlib-2.3.0/ 简介特性安装Ruby 命令行选项编码语法空白与行尾标识符与保留字Here DocumentBEGIN与END 语句注释运算符算数运算符比较运算符赋值运算符并行赋值位运算符范围运算符defined? 运算符点运算符 "." 和双冒号运算符 "::"运算符的优先级数据类型数值(Number)字符串(String

Ror初学笔记

Ror正在以惊人的速度增长着,特别是在常常光顾JavaEye的时候发现Ror已经在国内有非常好的基础了,当然要凑个热闹尝尝鲜 咯. 眼下国内Ror的中文资料还是非常少的,到网上找找就仅仅有Eiffel Qiu的 Ruby on Rails实践(下面简称为Ror实践),想必是假设有朝一日Ror成就大业了,那么国内肯定本文的作者肯定就是国内Ror的开山鼻祖咯.毕竟Ror是新事务,像我这样的仅仅能勉强看看E文的人肯定非常多的,假设直接就拿来那种大部头的文档来读,预计是非常难入门了.所以大家都要好好学习

Ruby七天入门(2 函数,数组和类)

DAY 2 第二天学习继续,今天重点学习函数,数组和类等编程的基本要素. 2.1 函数 2.1.1 简单定义 def tell_me puts true end 定义一个简单的函数(无参无返回值)很简单,使用def end包裹函数体即可. 2.1.2 参数 def tell_me(a) puts a end tell_me 1 1 => nil 使用参数和其他语言类似,加括号加变量名即可. 2.1.2.1 参数默认值 同样可以指定参数默认值: def tell_me(a='1',b) puts

Ruby求出数组中最小值及其下标

其实很简单 Ruby的Array类自带了min方法可以求出最小值,然后调用Array的index方法传入元素值就可以求出下标 1 a = [1, 2, 3, 4, 5, 6] 2 theMin = a.min #=> 1 3 theIndex = a.index(a.min) #=> 0

ruby on rails 中将数组转换成ActiveRecord::Relation的方法

将数组转为ActiveRecord::Relation是很常见的一个需求.例如,在我的项目中,从方法backup_projects中获取了数组形式的返回值.为了对该集合进行排序和分页,我需要将其转化为ActiveRecord::Relation形式.转化方法如下:   project = Project.backup_projects   project.map{|i| i.id}   @projects = Project.where(:id => project) 现在@projects就是

ruby中的数组相关方法介绍

l = ["a","b","c","d","e","f",'g'] puts l.values_at(2,3,4,6) # 获取index为2.3.4.6的元素 # # l1 = ["a","b","c","d","e","f",'g'] l2 = ["a&q

ruby各种循环输出数组元素

array = (1..10).to_a # 方法1 length = array.length length.times do |t| print "#{array[t]} " end puts "\n" # 方法2 length = array.length-1 for i in 0..length do print "#{array[i]} " end puts "\n" # 方法3 for i in array do