配列の要素を置き換える・ソートする

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

配列の要素を置き換えたり、ソートしたりするメソッドです。

スポンサーリンク

a = [5, 3, 2, 8, 12, 9]
p a
 
puts "---要素にブロックを実行"
a.map!{|i| i + 1}     # a.collect!でも同じ。map,collectなら破壊しない。
p a
 
puts "---要素の値を置き換える"
a.fill(100, 2, 2)    # インデックス2から先の、2個の要素の値を、100にする。a.fill(100, 2..3)でも同じ
p a
 
a[3, 0] = [[57, 9, 16], [4, 25, [31, 15]]]
p a
puts "---配列をほどいて一次元配列にする"
a.flatten!
p a
 
puts "---配列要素の順序を逆順にする"
a.reverse!
p a
 
puts "---配列を並べ替える"
a.sort!
p a
b = a.sort_by{|i| -i}    # 大きい順。ブロックを評価した結果をソートした順になる。
p b
p a
 

実行結果。

[5, 3, 2, 8, 12, 9]
---要素にブロックを実行
[6, 4, 3, 9, 13, 10]
---要素の値を置き換える
[6, 4, 100, 100, 13, 10]
[6, 4, 100, [57, 9, 16], [4, 25, [31, 15]], 100, 13, 10]
---配列をほどいて一次元配列にする
[6, 4, 100, 57, 9, 16, 4, 25, 31, 15, 100, 13, 10]
---配列要素の順序を逆順にする
[10, 13, 100, 15, 31, 25, 4, 16, 9, 57, 100, 4, 6]
---配列を並べ替える
[4, 4, 6, 9, 10, 13, 15, 16, 25, 31, 57, 100, 100]
[100, 100, 57, 31, 25, 16, 15, 13, 10, 9, 6, 4, 4]
[4, 4, 6, 9, 10, 13, 15, 16, 25, 31, 57, 100, 100]
スポンサーリンク
 
スポンサーリンク