プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

自分の市場価値を知りたい人にオススメの記事です

【すぐできる】エンジニアとしての市場価値を診断してみよう!

エンジニアが市場価値を把握しておくべき理由 エンジニアは、なぜ市場価値を把握しておいた方がいいのか、まずはその理由について説明します。 エンジニアの市場価値を決める要素 エンジニアの市場価値を決める要素について説明します。 経験業務と年数 ...

続きを見る

私がオススメするプログラミング教材です

私がおすすめするプログラミング教材のまとめ【書籍と動画】

これからエンジニアになりたい人へ向けた本 私が書いた、「これからエンジニアになりたい人」に向けた本です。 最近、世間ではプログラミングの必要性が声高く叫ばれるようになりました。 子供向けには2021年からプログラミング教育が義務教育で実施さ ...

続きを見る

【Ruby入門】inject(reduce)メソッドの使い方

更新日:

記事の内容


この記事では、Rubyのinjectの使い方を紹介します。
injectはわかりづらいので、injectを使わない書き方も合わせて説明します。
最後に実行時間も計測するので、どちらのコードが効率的なのかもわかります。
また、reduceはinjectの別名です。

injectとは何か?

injectはブロックを使用して繰り返し処理を行います。
この説明だけではわかりづらいと思うので、実際にコードを見ていきましょう。

配列の値の合計を出す

injectを使って、配列の数字の合計を出してみます。
内部で何が起きているかは、eachで置き換えたコードを見ると、わかりやすいはずです。
injectの基本的な書式は以下の通りです。

inject(初期値) { |初期値, 配列から渡されてくる値| }

配列内にあるHashの、特定のkeyの合計を出す

特定のkeyの値だけを合計します。

配列の要素数をカウントして、出現数を出します

injectを使って、配列の要素数をカウントしてみます。

Hashにある配列をフィルタリング

Hashにある配列をフィルタリングしてみます。
find_allとmapを使う方法と、reduceを使う方法の2つを考えてみます。

2つの方法では、実行時間も変わってきます。
reduceを使う方が、実行時間は短くすみます。
ちなみに、このコードを実行する時は、どちらか一方のコードをコメントアウトして動かして下さい。
片方のコードが、もう一方に影響を与えることを防ぐためです。

まとめ

この記事では、injectの使い方を紹介しました。
用途に合わせて、上手くinjectメソッドを使って下さい。

Good luck for your engineer life!

Ruby初心者から抜け出したい人に、オススメの本です



Rubyをより詳しく勉強したい人には、この記事がオススメです

Rubyの学習でおすすめの本と動画(Udemy)【2022年最新】

▼ Ruby on Railsについては、この記事で紹介しています 初心者向け【入門編】 脱初心者のための問題集 Ruby編 Rubyの基礎的な文法を学習し終わった後、次に何をしようかと考えている人にオススメの本です。 基礎を学んだ後にする ...

続きを見る


Ruby on Railsをより詳しく勉強したい人には、この記事がオススメです

Ruby on Railsの学習でおすすめの本と動画(Udemy)【2022年最新】

初心者向け Ruby on Rails 5.0 初級① Ruby on Railsは、基本的には初心者向けではありません。 ただし、これらの本は、比較的、簡単に書かれています。 プログラミング経験が浅くてRailsを勉強したい人は、この本か ...

続きを見る


Gitをより詳しく勉強したい人には、この記事がオススメです

Gitの学習でおすすめの本【2022年最新】

漫画?でわかりやすく学ぶ入門書の定番 改訂2版 わかばちゃんと学ぶ Git使い方入門 Gitの入門書の定番と言っても差し支えありません。 絵や図で解説している本なので、わかりやすく頭に入ってきます。 サルでもわかるGit入門 Gitの解説サ ...

続きを見る

関連コンテンツ

-Ruby, プログラミング

Copyright© プログラミング道場 , 2022 All Rights Reserved Powered by AFFINGER4.