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

プログラミング道場

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

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

目次1 エンジニアが市場価値を把握しておくべき理由2 エンジニアの市場価値を決める要素3 エンジニアにおすすめしたい市場価値診断ツール4 【最後に】正確な市場価値を知るなら転職エージェント エンジニアが市場価値を把握しておくべき理由 エンジ ...

続きを見る

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

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

目次1 これからエンジニアになりたい人へ向けた本2 プログラミング言語3 アプリ開発4 サーバー、インフラ、セキュリティなど5 機械学習系6 ゲーム開発7 データベース8 子供向け9 デザイン10 資格11 組織作り12 自作シリーズ13 ...

続きを見る

【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の学習でおすすめの本【2023年最新】

▼ Ruby on Railsについては、この記事で紹介しています 目次1 初心者向け【入門編】2 中級者向け3 上級者向け 初心者向け【入門編】 脱初心者のための問題集 Ruby編 Rubyの基礎的な文法を学習し終わった後、次に何をしよう ...

続きを見る


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

Ruby on Railsの学習でおすすめの本【2023年最新】

目次1 初心者向け2 中級者向け3 上級者向け 初心者向け Ruby on Rails 5.0 初級① Ruby on Railsは、基本的には初心者向けではありません。 ただし、これらの本は、比較的、簡単に書かれています。 プログラミング ...

続きを見る


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

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

目次1 漫画?でわかりやすく学ぶ入門書の定番2 初心者向け3 中級者向け4 上級者向け 漫画?でわかりやすく学ぶ入門書の定番 改訂2版 わかばちゃんと学ぶ Git使い方入門 Gitの入門書の定番と言っても差し支えありません。 絵や図で解説し ...

続きを見る

関連コンテンツ

-Ruby, プログラミング

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