ruby中陣列及hash基礎

2021-05-07 23:03:13 字數 3122 閱讀 4659

陣列及hash相關用法

數字和字串都可以作為

hash的鍵

將陣列轉化為

hash:(a

為物件陣列)

首先定義乙個

hash 

h={}

,a.each    

.compact

移出陣列內所有

nil的元素。形成不含

nil的陣列

.join(「」)

將陣列以(「」)內的格式輸出

.map

將陣列中的元素再以陣列形式輸出

.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=>*** :student=>***  :student

傳入的hash

可以被action

中的params[:student]

接收到 陣列

<<

物件往陣列內增加乙個元素

hash.each

的迭代為

hash.eachk

代表鍵,

v代表值

ruby

中函式的預設的返回值為

true

,結束函式時應以

return

來結束

對於不是一行的語句塊要用

do end 例

***x.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]      

#1print

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"

#45print

bbb.sort,

"/n"

#12345 

排序print

aaa.reverse,

"/n"

# bb 54 aa 

倒置print

bbb.sort.reverse,

"/n"

#54321 降序

ruby 基礎 Array 與 Hash 相互轉換

ruby的api裡面有hash轉換成array的方法,但是木有逆轉的方法下面給個逆轉的方法 將一維陣列轉化為雜湊 array a a b b c c hash hash array 將二維陣列轉化為hash array a a b b c c hash hash array.flatten 也可以使...

Ruby中Hash按照自然順序輸出

本來打算按照複製的順序輸出,但是結果出乎預料。查了一下,hash本身就是無序的 之後又看到了日本人的一篇帖子 url ruby1.8 以下,hash的順序是不固定的 h hash.new h c c h b b h a a h.each key do k p kend c a b 這裡沒有按照期望的...

Ruby中陣列的 操作

最近在忙乙個專案,好久沒有寫日誌了,專案終於接近尾聲,可以適當放鬆一下,所以記一下在這個專案中發現的有趣事情 陣列的 與 操作 一直以為兩個陣列a和b相與,誰前誰後都一樣,不過這次在專案中突然想試一下,真是不試不知道一試嚇一跳 usr bin ruby r random.new radix 1000...