Enumerable

参考:

module Enumerable (Ruby 2.5.0)

イーテレータ | 酒と涙とRubyとRailsと

Enumerator

参考:

class Enumerator (Ruby 2.5.0)

count

参考:

instance method Enumerable#count (Ruby 2.5.0)

first

参考:

instance method Enumerable#first (Ruby 2.5.0)

map / collect

参考:

instance method Enumerable#collect (Ruby 2.5.0)

reduce / inject

参考:

Ruby の inject (reduce) メソッドを使いこなす | Hack Your Design!

reduce で with_index する方法 – Qiita

instance method Enumerable#inject (Ruby 2.5.0)

reduce (Enumerable) | Ruby リファレンス (ref.xaio.jp)

Ruby inject with index and brackets – Stack Overflow

select

参考:

instance method Enumerable#filter (Ruby 2.6.0)

reject

参考:

instance method Enumerable#reject (Ruby 2.6.0)

flat_map

map した結果の配列を concat する。

参考:

Enumerable#flat_map で多重配列が返ってきそうな処理もシンプルにできる | Bye Bye Moore

map して flatten したら flat_map になる、を ruby でやってみた – Qiita

ruby の flat_map って何? | rochefort’s blog

instance method Enumerable#collect_concat (Ruby 2.6.0)

min / max

参考:

instance method Enumerable#min (Ruby 2.6.0)

instance method Enumerable#max (Ruby 2.6.0)

minmax

要素の中から最小値と最大値を返す。各要素を <=> 演算子で比較して一番小さい要素 (一番先頭にくる要素) と一番大きい要素 (一番後ろにくる要素) を配列にして返す。

<=> で比較できない要素が混じっていると例外 ArgumentError が発生する。<=> を実装していない要素があると例外 NoMethodError が発生する。

numbers = [47, 57, 17, 20, 47, 41, 5, 16, 63, 34]
numbers.minmax
# => [5, 63]

参考:

minmax (Enumerable) | Ruby リファレンス (ref.xaio.jp)

instance method Enumerable#minmax (Ruby 2.5.0)

min_by / max_by

参考:

instance method Enumerable#min_by (Ruby 2.5.0)

instance method Enumerable#max_by (Ruby 2.5.0)

find

参考:

instance method Enumerable#detect (Ruby 2.6.0)

each_with_index

各要素について添え字と共に繰り返し処理を行う。

%w[a b c].each_with_index do |c, i|
  puts "#{i} #{c}"
end

指定した添え字から開始する場合は with_index を使う。

%w[a b c].each.with_index(1) do |c, i|
  puts "#{i} #{c}"
end

参考:

Enumerable#each_with_index が便利すぎる | 永遠に未完成

instance method Enumerable#each_with_index (Ruby 2.5.0)

instance method Enumerator#with_index (Ruby 2.5.0)

instance method Array#each (Ruby 2.5.0)

instance method Array#each_index (Ruby 2.5.0)

each_with_object

参考:

each_with_object (Enumerable) | Ruby リファレンス (ref.xaio.jp)

inject と each_with_object って何が違うのさ? – Qiita

Ruby の each_with_object と inject について | 茶漬けの技術メモ

Ruby でハッシュを別の形式のハッシュに変換する方法 | give IT a try

group_by

参考:

group_by (Enumerable) | Ruby リファレンス (ref.xaio.jp)

instance method Enumerable#group_by (Ruby 2.5.0)

instance method Object#itself (Ruby 2.5.0)

最近思いついた Ruby の Object.itself の使用方法 – Qiita

Custom Ruby method Enumerable#count_by (use for quick statistics) | makandra dev

Group by identity in Ruby – Stack Overflow

uniq

破壊的操作 uniq! が  Array では使える。

参考:

instance method Enumerable#uniq (Ruby 2.6.0)

instance method Array#uniq (Ruby 2.6.0)

drop

参考:

instance method Enumerable#drop (Ruby 2.6.0)

某「ruby で cdr っぽい事したい? drop 使えば良いんじゃないですか? (鼻ホジ」ぼく「……あっ」| Bye Bye Moore

partition

参考:

partition (Enumerable) | Ruby リファレンス (ref.xaio.jp)

instance method Enumerable#partition (Ruby 2.5.0)

any? / all?

参考:

instance method Enumerable#any? (Ruby 2.6.0)

instance method Enumerable#all? (Ruby 2.6.0)

Tips

参考:

便利な組み込みクラスのメソッド達 Enumerable編 – Qiita

Tagged:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です