Step by Step Ruby on Rails

Ruby on Railsで実際にWebサイトを構築する手順をまとめています。

Rubyで配列の操作

Rubyで配列の操作を行う方法をinteractive Ruby (irb)を使って確認しました。

●interactive Ruby (irb)の起動方法

$ rails console


1)文字列を分割して配列を作成

・splitメソッドで配列に分割

・デフォルトは、空白で分割。

irb(main):001:0>   "foo bar     baz".split
=> ["foo", "bar", "baz"]

irb(main):002:0>  "fooxbarxbazx".split('x')
=> ["foo", "bar", "baz"]


2)配列の各要素へのアクセス

①インデックスを使ってアクセス

・インデックス番号は0から開始。マイナスの使用も可。

irb(main):003:0>  a = [42, 8, 17]
=> [42, 8, 17]

irb(main):004:0> a[0]
=> 42
irb(main):005:0> a[1]
=> 8
irb(main):006:0> a[2]
=> 17
irb(main):007:0> a[-1]
=> 17

②first、second、lastメソッド

irb(main):008:0> a
=> [42, 8, 17]

irb(main):009:0> a.first
=> 42
irb(main):010:0> a.second
=> 8
irb(main):011:0> a.last
=> 17
irb(main):012:0> a.last == a[-1]
=> true


3)配列長

irb(main):013:0> x = a.length
=> 3


4)配列の並び替え

・sort、reverse、shuffleメソッドで並び替え
・配列の値自身を並び替える場合は、末尾に"!"をつける。

irb(main):018:0> a
=> [42, 8, 17]
irb(main):019:0> a.sort
=> [8, 17, 42]
irb(main):020:0> a.reverse
=> [17, 8, 42]
irb(main):021:0> a.shuffle
=> [8, 17, 42]
irb(main):022:0> a
=> [42, 8, 17]

irb(main):024:0> a.sort!
=> [8, 17, 42]
irb(main):025:0> a
=> [8, 17, 42]


5)配列に要素追加

・pushメソッド、"<<"で追加。

irb(main):026:0> a.push(6)
=> [8, 17, 42, 6]

irb(main):027:0> a << 7
=> [8, 17, 42, 6, 7]

irb(main):028:0> a << "foo" << "bar"
=> [8, 17, 42, 6, 7, "foo", "bar"]

irb(main):029:0> a
=> [8, 17, 42, 6, 7, "foo", "bar"]


6)配列の各要素を一つの文字列に結合

irb(main):029:0> a
=> [8, 17, 42, 6, 7, "foo", "bar"]
irb(main):030:0> a.join
=> "8174267foobar"
irb(main):031:0> a.join(', ')
=> "8, 17, 42, 6, 7, foo, bar"


7)rangeを使って配列作成

①配列作成

irb(main):032:0> 0..9
=> 0..9

irb(main):034:0>  (0..9).to_a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

②rangeを使って要素を取り出す

irb(main):036:0> a[0..2]
=> ["foo", "bar", "baz"]


8)文字列の配列

・%wを使用。

irb(main):035:0> a = %w[foo bar baz quux]
=> ["foo", "bar", "baz", "quux"]

・文字に対してrangeを使用する事も可能

irb(main):037:0> ('a'..'e').to_a
=> ["a", "b", "c", "d", "e"]

9)inspectメソッドとpメソッド

・人間が読みやすい形に置き換えて表示する。

irb(main):037:0> a = [42, 8, 17]

irb(main):037:0> puts a
42
8
17

irb(main):037:0> p a
[42, 8, 17]

irb(main):037:0> puts a.inspect
[42, 8, 17]