配列の基礎

配列の宣言

array = [1,2,3,4,5]

配列の要素の参照

配列の要素を参照するには、以下のようにします

配列[添字]

先頭の要素と2番目の要素を出力するサンプルです

puts array[0];
puts array[1];

配列の要素の代入

配列[添字] = 値

とします
先頭の要素に20を代入するサンプルです。

array[0] = 20

配列の要素の個数

次のようにします

array.size

配列の要素を順番に処理する

eachというのを使います。

配列.each do |配列の要素|
  # ここに配列の要素に対する処理を書きます
end

たとえば配列の要素すべての値を表示する例です

array.each do |element|
  puts element
end

重複を取り除く

uniqというのを使います

配列.uniq

たとえば[1,1,2,3]という配列に.uniqをすると[1,2,3]という配列になります

[1,1,2,3].uniq

並び替え

配列.sort

デフォルトでは数値の小さい順になります。たとえば[5,4,3,2,1]という配列にsortすると[1,2,3,4,5]になります。

並び順を変更するにはこうします。値の大きい順にしてみます

[1,2,3,4,5].sort{ |a,b|
  b <=> a
}

これを実行すると[5,4,3,2,1]になります

ちなみに逆順にするだけならreverse使えばいいです

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

配列の比較

==で比較出来ます

array1 = [1,2,3,4,5]
array2 = [1,2,3,4,5]

if array1 == array2
  puts "一致しました!"
else
  puts "一致しなかった!
end

この場合は"一致しました"と表示されます。

配列を足し算

2つの配列を合体させるには配列同士を足し算すれば良いです。

[1,2] + [3,4]

上記例では、[1,2,3,4]となります。わかりやすいですね。

配列の引き算

配列から配列を除去したいときは配列同士で引き算をすれば良いです

[1,2,3,4] - [1,2]

上記例では[3,4]となります。わかりやすいですね。並び順は関係無いです。単純に同じ要素を除去できます

[7,9,1,4] - [4,9]

は、[7,1]になります

配列を指定の数ごとに分割する

each_sliceというのを使います

[1,2,3,4,5].each_slice(3).to_a

これは[[1,2,3], [4,5]]という配列の配列になります。

配列の複製

cloneってのを使います

array1 = [1,2,3,4,5]
array2 = array1.clone

配列から検索する

array = [1,2,1,4,5]
array.find(1)

上記例は[1,1]となります。

配列を条件で絞り込む

selectってのを使います。たとえば奇数だけ集めたい時はこうします

[1,2,3,4,5].select{|e| e.odd?}

これは[1,3,5]となります

ちなみにこれはselect(&:odd?)と書くことも出来ます

[1,2,3,4,5].select(&:odd?)

逆に条件に合致しないものが欲しいときはrejectというものを使います

[1,2,3,4,5].reject{|e| e.odd?}

これは[2,4]となります