ruby中数组及hash基础

本文介绍了Ruby语言中数组和Hash的基本用法及其高级操作,包括定义、访问、增删改查、转换、分组等实用技巧,并展示了数组与Hash在实际应用中的常见场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组及 hash 相关用法

数字和字符串都可以作为 hash 的键

 

将数组转化为 hash :( a 为对象数组)

首先定义一个 hash  h={} a.each {|e| h[e.code]=e}   

 

.compact 移出数组内所有 nil 的元素。形成不含 nil 的数组

 

.join( “” ) 将数组以(“”)内的格式输出

 

.map{|u| [u.name,u.id]} 将数组中的元素再以数组形式输出

 

.group_by(|a|  a.rxsj.year).keys 按照数组中的某些内容进行分组形成 hash 集合

 

Params[:student] 取到的是一个 hash params[:student][:rxsj] 取到的是里面的项

 

Select_tag(:xiao,options_for_select( 放入 hass)) form.select() 的用法相同

 

Redirect_to :action=>xxx :student=>xxx  :student 传入的 hash 可以被 action 中的 params[:student] 接收到

 

数组 << 对象 往数组内增加一个元素

 

Hash.each 的迭代为 hash.each{|k,v|  ….}k 代表键, v 代表值

 

Ruby 中函数的默认的返回值为 true ,结束函数时应以 return 来结束

 

对于不是一行的语句块要用 do end

        xxxx.each do |aaa|

              …………

              End

 

数组 .include?( 一个元素 ) 返回 true false 判断是否包换该元素

注:数组的迭代有顺序,而 hash 的迭代没有顺序

 

数组操作

1 、数组定义
arr1 = []
arr2 = Array.new
arr3 = [
'1' , '2' , '3' ]
2
、输出
print  arr3, "/n"     #123
puts arr3[0]       #1
print  arr3.join( "," )   #1,2,3
3 、访问数组元素
arr1[0]
arr1[-1]    
# 这个比较有意思,意思是最后一个的数据
arr1.first
arr1.last
arr1.max
arr1.min
arr1.length
arr1.size
4
、数组操作
arr3[4] =  '5'                      # 此时 arr3[3] 默认尾 nil
arr3.delete_at(3)                 # 删除指定下标的元素
arr3[2] = [ "3a" , "3b" , "3c" ]        # 可以这样来做
arr3.delete([ "3a" , "3b" , "3c" ])     # 可以删除上面添加的
arr3.push( '6' )                    # 插入元素
arr3.insert(3, "b" )                # 在指定位置插入新元素
arr3<< "f" <<2                      # 从左至右一次加入元素
arr3.pop                          # 删除尾元素
arr3.shift                        # 删除首元素
arr3.clear                        # 清空数组
5 、数组运算
aaa = [ " aa " ,4,5, " bb " ]
bbb = [4,1,3,2,5]
print  aaa + bbb, "/n"          # aa 45 bb 41325
print  aaa*2, "/n"          # aa 45 66  aa 45 66 
print  bbb - aaa             #132
print  aaa | bbb, "/n"          # aa 45 bb 132
print  aaa & bbb, "/n"          #45
print  bbb.sort, "/n"          #12345  排序
print  aaa.reverse, "/n"          # bb 54 aa  倒置
print  bbb.sort.reverse, "/n"       #54321  降序

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值