Ruby 配列を反復処理する
-
each
メソッドを使用して Ruby 配列を反復処理する -
for
ループを使用して Ruby 配列を反復処理する -
reverse_each
メソッドを使用して Ruby 配列を反復処理する -
each_with_index
メソッドを使用して Ruby 配列を反復処理する -
map
メソッドを使用して Ruby 配列を反復処理する -
select
メソッドを使用して Ruby 配列を反復処理する -
reject
メソッドを使用して Ruby 配列を反復処理する
Ruby の配列クラスには Enumerable ミックスインが含まれているため、いくつかのトランスバーサルメソッドがあります。このチュートリアルでは、これらの列挙可能なメソッドと、Ruby で配列を反復処理する他の方法を見ていきます。
each
メソッドを使用して Ruby 配列を反復処理する
これは、Ruby で最も使用されているイテレーターです。
コード例:
fruits = ['Orange', 'Apple', 'Banana']
fruits.each do |fruit|
puts fruit
end
出力:
Orange
Apple
Banana
for
ループを使用して Ruby 配列を反復処理する
この方法は望ましくない副作用をもたらす可能性があるため、お勧めしません。
コード例:
fruits = ['Orange', 'Apple', 'Banana']
for fruit in fruits
puts fruit
end
出力:
Orange
Apple
Banana
上記の例で fruit
変数が以前に定義されている場合、for
ループはそれを fruits
配列の最後の要素で上書きします。これはスコープの問題であり、動作を以下に示します。
コード例:
fruit = 'Mango'
fruits = ['Orange', 'Apple', 'Banana']
for fruit in fruits
puts fruit
end
puts fruit
出力:
Orange
Apple
Banana
Banana
reverse_each
メソッドを使用して Ruby 配列を反復処理する
名前が示すように、これは each
メソッドのように機能しますが、順序が逆になります。
コード例:
fruits = ['Orange', 'Apple', 'Banana']
fruits.reverse_each do |fruit|
puts fruit
end
出力:
Banana
Apple
Orange
each_with_index
メソッドを使用して Ruby 配列を反復処理する
このメソッドは、配列の各要素とインデックスを取得する必要がある状況で役立ちます。
コード例:
fruits = ['Orange', 'Apple', 'Banana']
fruits.each_with_index do |fruit|
puts "#{index}. #{fruit}"
end
出力:
0. Orange
1. Apple
2. Banana
上記の例は、配列を反復処理する最も簡単な方法を示していますが、このメソッドは通常、配列をトラバースしてその各要素に対していくつかの操作を実行する必要がある場合に便利です。たとえば、電子メールアドレスのリストを反復処理したり、それらのそれぞれにメッセージを送信します。
このチュートリアルで説明する残りのメソッドは、配列を別の配列に変換するという意味で、上記のメソッドとは少し異なります。
map
メソッドを使用して Ruby 配列を反復処理する
配列の各要素を変更して、それらを新しい配列として使用する場合に便利です。
コード例:
numbers = [2, 4, 6]
doubles = numbers.map do |n|
n * 2
end
puts doubles
出力:
[4, 8, 12]
collect
メソッド、map
のエイリアスもあり、どちらも同じように動作することに注意してください。
select
メソッドを使用して Ruby 配列を反復処理する
名前が示すように、select
メソッドを使用すると、特定の論理条件を満たす配列の特定の要素のみを選択できます。また、新しい配列を生成します。
コード例:
numbers = [2, 3, 4, 5, 6, 7, 8, 9]
perfect_squares = numbers.select do |n|
Math.sqrt(n) % 1 == 0
end
puts perfect_squares
出力:
[4, 9]
select
のエイリアスである find_all
メソッドもあり、どちらも同じように動作することに注意してください。
reject
メソッドを使用して Ruby 配列を反復処理する
reject
メソッドは select
の反対であり、配列の特定の要素を拒否し、残りの要素を新しい配列として返す必要がある場合に便利です。
コード例:
numbers = [-2, -1, 0, 1, 2, 3]
positive_integers = numbers.reject do |n|
n < 1
end
puts positive_integers
出力:
[1, 2, 3]