Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

配列の主なメソッド

sizeメソッド、lengthメソッド

Rubyの配列オブジェクトは格納している要素数を知っています。sizeメソッドやlengthメソッドを使うと、その配列オブジェクトの要素数を返します。

ary = [1, 2, 3, 4, 5]
p ary.size    #=> 5
p ary.length  #=> 5

eachメソッド

各要素に対して操作をおこなう時はeachメソッドが使えます。以下のようにeachメソッドをブロック付きで呼び出すと、各要素へブロック内の処理をおこなえます。

ary = ["Ruby", "HTML", "JavaScript", "Rails"]
ary.each { |item|
  # (A)
  output = item.downcase
  p output
  # (B)
}
# 上記のコードは以下のように動作します。
# item変数に"Ruby"への参照を代入する。
# (A)から(B)を実行する。
# item変数に"HTML"への参照を代入する。
# (A)から(B)を実行する。
# item変数に"JavaScript"への参照を代入する。
# (A)から(B)を実行する。
# item変数に"Rails"への参照を代入する。
# (A)から(B)を実行する。

collectメソッド

collectメソッドを使うことによって、配列オブジェクトの各要素にブロック内の操作をおこないます。その操作をおこなった結果を要素として格納した配列オブジェクトを返します。eachメソッドとcollectメソッドは、それぞれブロック内の操作をおこなった後に返す値が違います。

ary = ["Ruby", "HTML", "JavaScript", "Rails"]
p ary.collect { |item| item.upcase }    #=> ["RUBY", "HTML", "JAVASCRIPT", "RAILS"]

joinメソッド

joinメソッドを使うと、配列オブジェクト内の各要素を繋げて文字列オブジェクトにして返します。

ary = [1, 2, 3, 4, 5]
p ary.join    #=> "12345"

joinメソッドに引数を指定すると、要素を繋ぐあいだに引数を挟んだ文字列オブジェクトを返します。

ary = ["Ruby", "on", "Rails"]
p ary.join("_")    #=> "Ruby_on_Rails"

unshiftメソッド

unshiftメソッドを使用した場合、配列の先頭に要素を加えた配列オブジェクトを返します。

# 配列オブジェクトの先頭に要素を1つ加えます
ary = [1, 2, 3, 4, 5]
ary.unshift(0)
p ary        #=> [0, 1, 2, 3, 4, 5]

# 配列オブジェクトの先頭に要素を引数の数だけ加えます
ary = [1, 2, 3, 4, 5]
ary.unshift(0, 1, 2, 3)
p ary        #=> [0, 1, 2, 3, 1, 2, 3, 4, 5]

pushメソッド

pushメソッドを使用した場合、配列の末尾に要素を加えた配列オブジェクトを返します。

配列オブジェクトの末尾に要素を1つ加えます。

ary = [1, 2, 3, 4, 5]
ary.push(6)
p ary        #=> [1, 2, 3, 4, 5, 6]

配列オブジェクトの末尾に要素を引数の数だけ加えます。

ary = [1, 2, 3, 4, 5]
ary.push(6, 7, 8, 9)
p ary        #=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

pushと同じように「<<」を使用すると、配列の末尾に要素を加えます。
この加える要素は1つずつしか加えられません。

ary = [1, 2, 3, 4, 5]
ary << 6
p ary        #=> [1, 2, 3, 4, 5, 6]

shiftメソッド

shiftメソッドを使用した場合、配列の先頭にある要素を取り除いた配列オブジェクトを返します。

ary = [1, 2, 3, 4, 5]
ary.shift
p ary        #=> [2, 3, 4, 5]

popメソッド

popメソッドを使用した場合、配列の末尾にある要素を取り除いた配列オブジェクトを返します。

ary = [1, 2, 3, 4, 5]
ary.pop
p ary        #=> [1, 2, 3, 4]

firstメソッド

firstメソッドを使用した場合、配列の先頭にある要素の値を返します。

ary = [1, 2, 3, 4, 5]
p ary.first  #=> 1

lastメソッド

lastメソッドを使用した場合、配列の末尾にある要素の値を返します。

ary = [1, 2, 3, 4, 5]
p ary.last  #=> 5

配列の先頭・末尾要素を操作するメソッドの図

先頭要素に対する操作 末尾要素に対する操作
要素を加える unshift push
要素を取り除く shift pop
要素を参照する first last

reverseメソッド

reverseメソッドを使用した場合、配列の要素を逆の順番に並び替えた配列オブジェクトを返します。
破壊的メソッドとして使用する場合には、reverse!のように後ろへ「!」を加えます。

ary = [1, 2, 3, 4, 5]
ary.reverse
p ary         #=> [1, 2, 3, 4, 5]
ary.reverse!
p ary         #=> [5, 4, 3, 2, 1]


次のコンテンツ ホームへ戻る