配列の基礎
配列の宣言
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]となります