Ruby で配列を反復処理する「正しい」方法は何ですか? 質問する

Ruby で配列を反復処理する「正しい」方法は何ですか? 質問する

PHPは、欠点はあるものの、この点では優れています。配列とハッシュに違いはありません(私がナイーブなだけかもしれませんが、明らかに正しいと思います)。どちらを反復処理するにしても、

foreach (array/hash as $key => $value)

Ruby では、このようなことを実行する方法がいくつかあります。

array.length.times do |i|
end

array.each

array.each_index

for i in array

ハッシュの方が理にかなっています。なぜなら、私はいつも

hash.each do |key, value|

なぜ配列に対してこれができないのでしょうか? 1 つのメソッドだけを覚えておきたい場合は、 を使用できると思います(インデックスと値の両方が使用可能になるため)。しかし、だけでなく をeach_index実行する必要があるのは面倒です。array[index]value


ああそうだ、 を忘れていたarray.each_with_index。しかし、これは が続くので最悪だ|value, key|!これは狂気ではないか?hash.each|key, value|

ベストアンサー1

これはすべての要素を反復処理します:

array = [1, 2, 3, 4, 5, 6]
array.each { |x| puts x }

# Output:

1
2
3
4
5
6

これにより、すべての要素が反復処理され、値とインデックスが提供されます。

array = ["A", "B", "C"]
array.each_with_index {|val, index| puts "#{val} => #{index}" }

# Output:

A => 0
B => 1
C => 2

あなたの質問からは、どれを探しているのかよく分かりません。

おすすめ記事