陣列及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、輸出
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]
aaa + bbb,
"/n"
# aa 45 bb 41325
aaa*2,
"/n"
# aa 45 66 aa 45 66
bbb - aaa
#132
aaa | bbb,
"/n"
# aa 45 bb 132
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...