[Ruby] injectメソッドの使い方

injectはeachなどと同じように、繰り返しを行うメソッド


<使い方>

配列オブジェクト.inject {|初期値, 要素| ブロック処理 }

例)

array = 1..6
array.inject (0){ |sum,num| p sum+=num}

実行結果↓

1
3
6
10
15
21

<injectにシンボルを使用して演算子を指定する>

例)

  • 配列の中身の合計を算出したい
  • 全部掛け合わせた値を計算したい
  • 配列の中身を使って順番に引き算をしたい
array = 1..6
p array.inject(:+) #配列の要素をすべて足す
p array.inject(3,:+) #初期値3に対して、配列の要素をすべて足す
p array.inject(:*) #配列の要素をすべて掛ける
p array.inject(3,:*) #初期値3に対して、配列の要素をすべて掛ける
p array.inject(100,:-) #100からarrayの合計値を引く

実行結果↓

21
24
720
2160
79
タイトルとURLをコピーしました