ruby中数组及hash基础

数组及 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?( 一个元素 ) 返回 truefalse 判断是否包换该元素

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

数组操作

1 、数组定义
arr1=[]
arr2=Array.new
arr3=[
'1' , '2' , '3' ]
2
、输出
print arr3, "\n" #123
putsarr3[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" #aa45bb41325
print aaa*2, "\n" #aa4566aa4566
print bbb-aaa #132
print aaa|bbb, "\n" #aa45bb132
print aaa&bbb, "\n" #45
print bbb.sort, "\n" #12345 排序
print aaa.reverse, "\n" #bb54aa 倒置
print bbb.sort.reverse, "\n" #54321 降序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值