Rubyのsortメソッドで取得した値を並び替える方法【初心者向け】

初心者向けにRubyのsortメソッドの使い方について解説しています。このメソッドを使うことで配列の要素を並び替えることができます。重要な処理なのでぜひ書き方を覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyのsortメソッドの使い方について解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

sortメソッドの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

sortとは

sort(日本語では整列)とは配列の要素を一定の規則で並びかえることです。

例えば、多数のデータの中から特定のデータを探したい時に、前処理としてデータを整列しておきます。

 

sortの書き方

Arrayオブジェクトに対して、sortメソッドを呼び出します。

sortメソッドは引数のブロックで、要素どうしの比較方法を定められます。

sortメソッドは配列自身を変更しません。戻り値が整列後の配列になります。

詳細は公式の文書を参照してください。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

サンプルコード

ary0 = ['foo', 'bar', 'baz']

ary1 = ary0.sort
puts ary0
puts ary1

ary2 = ["9", "7", "10", "11", "8"]
puts ary2.sort
puts ary2.sort {|a, b| a.to_i  b.to_i}

 

実行結果

foo
bar
baz
bar
baz
foo
10
11
7
8
9
7
8
9
10
11

 

解説

1行目で文字列3つを含む配列ary0を作成しています。

3行目でary0のsortメソッドを呼び出しました。
元の配列ary0は変化しませんでした。
ary1は整列後の配列なので、bar, baz, fooのアルファベット順になりました。

7行目で数字の配列ary2を作成しています。

8行目でary2のsortメソッドを呼び出しました。
アルファベット順の整列なので、10, 11, 7, 8, 9という順序になりました。

9行目で再度sortメソッドを呼び出しました。
今回は引数でブロックを指定し、数字として比較するようにしたので、7, 8, 9, 10, 11という順序になりました。

 

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。