Railsの繰り返し文でhashを追加する方法について現役エンジニアが解説しています。hash(ハッシュ)とは、キーと値という2つのデータがペアになったデータや値の集合のことです。hashを追加するには、直接代入する方法やsotreメソッド、mergeメソッドを使う方法があります。2019/4/26テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。Railsの繰り返し文でhashを追加する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。繰り返し文でhashを追加するhashとはhash(ハッシュ)とは、キーと値という2つのデータがペアになった集合のことです。一般的には「連想配列」と呼ぶこともあります。hashでキーと値を関連づけておくと、そのhashにキーを与えると関連づけた値を取得できます。Railsでhashを初期化する方法を現役エンジニアが解説【初心者向け】の記事も合わせてご覧ください。Rubyのプログラミングで挫折しない学習方法を動画で公開中hashを追加する方法hashは簡単に作成できますが、ここでは出来上がっているhashに後から追加する方法を解説します。ベースとなるhashを作成します。"レモン"=>200}となります。この例では、要素を2つ持つhashが作成できます。このhashに対して、何か要素を追加する方法は3つあります。キー名を指定して値を直接代入します。"バナナ"=>50}となります。要素が1つ追加されて3つの要素をもつhashとなります。storeメソッドの引数に、キー名と値を指定します。結果は1.の場合と同じです。追加するとき、追加したいhashに指定したキー名がすでに存在していると、値の上書きになります。"レモン"=>200}となり、追加にはなりません。追加するときは、まだ存在しないキー名を指定する必要があります。mergeメソッドを使う方法1つのhashにもう1つのhashを結合します。base.merge(delta)と書きます。mergeメソッドの引数に、結合したいhashを指定します。50}base.merge!(delta)とも書けます。繰り返し文でhashを追加するFruitsというフルーツのレコード一覧(データベース)があったとします。フルーツのレコードには色々なデータが含まれる中で、その後の処理を簡潔にするために必要なデータだけhashにして取り出したいときがあります。fruit.price)endと書けます。繰り返しで個々のフルーツインスタンスを取り出して、hashに必要なデータを追加します。「スクールは高いから独学で成功する」という気持ちの方は多いと思います。その方が金額は低く抑えられるでしょう。独学には向き不向きがあり、実はスクールが向いている人も大勢います。スクールが向いているかもしれません。お気軽にご参加ください。無料相談はこちら筆者プロフィール伊藤広明(いとうひろあき)1990年代からソフトウェア開発を仕事としてはじめ、2000年ごろからWEBエンジニアの仕事にも従事。世の中で末長く使ってもらえるシステム開発が信条。後進の育成にも力を入れている。Strutsなど大石ゆかり内容分かりやすくて良かったです!田島悠介ゆかりちゃんも分からないことがあったら質問してね!大石ゆかり分かりました。Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。30分間、オンラインでどんなことでも質問し放題です。あなたの相談に真摯に向き合います。「漠然としているがプロの話を聞いてみたい」こんな気持ちでも大丈夫です。お気軽にご参加ください。※体験用のカリキュラムも無料で配布いたします。関連する記事Rubyで画像認識(画像解析)する方法を現役エンジニアが解説【初心者向け】Rubyで画像認識(画像解析)する方法について解説します。そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した...RubyRubyでtrimを使って文字列の空白を削除する方法を現役エンジニアが解説【初心者向け】Rubyでtrimを使って文字列の空白を削除する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。...RubyRubyの配列の比較方法を現役エンジニアが解説【初心者向け】Rubyの配列の比較方法について解説します。whenメソッドとbetween?メソッドを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心...RubyRubyのwriteメソッドの使い方を現役エンジニアが解説【初心者向け】Rubyのwriteメソッドの使い方について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。そもそも...RubyRubyでevalメソッドを使う方法【初心者向け】Rubyでevalを使う方法について解説します。実際のコードを使用して初心者向けに解説します。Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まるでしょう。本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。hash(ハッシュ)とは、キーと値という2つのデータがペアになった集合体のことです。一般的には「連想配列」と呼ぶこともあります。hashでキーと値を関連づけておくと、そのhashにキーを与えると関連づけた値を得ることが可能です。’オレンジ’を使って’orange’を取り出すことができるでしょう。hashは、以下のようにキーと値を関連づけて表記します。‘orange’がキーで、’オレンジ’が値です。Notation)形式」のテキストデータもキーと値を関連づけたデータです。キーに関連して長さが不特定のデータを何でも関連づけられるので、WebやAIの世界でもよく使う「非定形データ」を表すのに向いています。hashは、中身を初期化しないと使うことができません。他の変数や配列などが初期化しないと使えないことと同じであるものの、初期化の方法は少し特殊です。要素のない空のhashを初期化したい場合には、以下のように記述しましょう。要素が無い空のhashがresultに代入されます。putsで空のhashを表示すると、下記のように記述できます。hashは、{}で括られて表示されます。hashに要素を追加するには、以下のように記述しましょう。storeメソッドを使って、追加したいキーと値を指定します。newを使わずにいきなりhashのキーと値を指定して初期化することもできます。キーと値の要素を持つhashが生成されます。newとstoreメソッドを使うと、以下のように書けます。実行すると以下のように表示されるでしょう。要素を複数にしたい時は、storeを複数回実行します。storeメソッドを使わない場合は、以下のように書けます。要素を複数にしたい時は、要素を列挙していきます。キーに指定できるのは、文字列以外にも「シンボル」があります。シンボルとは、コロン(:)をつけた文字列です。キーにシンボルを利用すると、hashは以下のように初期化できます。下記のように記述します。RailsでのHashの扱い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。Hashではあるキー情報に対して、データを格納することができるものです。今回はそのHashを使ってデータを扱う方法を説明します。Hashは連想配列とも言いますが、あるキー情報に対して、何かしらのデータを紐付けて格納できます。机にひきだしが2つあったとします。1つ目のひきだしにAのシールを貼り、2つ目のひきだしにBのシールを貼り、それぞれAのひきだし、Bのひきだしとします。Aのひきだしには鉛筆を、Bのひきだしにはノートを入れます。Aのひきだしには何が入っているでしょうか。答えは鉛筆が入っています。このようにA(キー情報)には鉛筆(データ)といったイメージでデータの格納の仕方をするのが、Hashになります。Hashは以下のように作成することができます。これで空っぽのHashが作成されました。最初から何かしらの値を設定したい場合は、以下のように書きます。いうキーに対して、文字列の”tarou”が格納された状態です。Hashの基本的な使い方として、4つの操作をご紹介します。それぞれの操作について以下で解説します。要素(Hashに設定した値)を取得する場合は、以下のように書きます。いうキーを参照すると、”tarou”という文字列が取得できます。要素を追加したい場合は、以下のように書きます。いうキーに”example@example.com”という文字列を追加できました。追加されている要素を更新する場合は、以下のように書きます。いうキーに格納されている”tarou”を”zirou”に更新できました。要素を削除する場合は、deleteメソッドを使用します。いうキーに格納された要素は削除されました。「スクールは高いから独学で成功する」という気持ちの方は多いと思います。RubyJavaScriptでLocationオブジェクトのhash値を削除する方法を現役エンジニアが解説【初心者向け】JavaScriptでLocationオブジェクトのhash値を削除する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使って初心者向けに解説します。そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。本記事は、TechAcademyのオンラインブートキャンプJavaScript/jQuery講座の内容をもとにしています。documentの現在位置についての情報を持つオブジェクトです。平たく言うと、URLの情報を持つオブジェクトということになります。Locationオブジェクトのプロパティには、URLの情報に関するものが複数あります。検索キーワード(URLの?以降)の値を持つsearchや、httpsなどのプロトコルを持つprotocolなどがあります。URLの#の後の文字列が、Locationオブジェクトのプロパティのhashに格納されています。このhash値はHTMLのidを割り当てた場所へ移動させるのに使うことができます。画面の下の方に表示されているHTMLタグにidを割り当て、URLの最後にhashを#とidの名前という具合につけることで、その場所へスクロールした状態で表示できます。Locationオブジェクトのプロパティに、hashという名前でhash値が格納されています。Locationオブジェクトは、記述の省略可能なwindowオブジェクトのプロパティです。そのため、location.hashと記述することで値の操作ができます。location.hashに空文字(”シングルクォート2つ)を代入することで、削除となります。「スクールは高いから独学で成功する」という気持ちの方は多いと思います。その方が金額は低く抑えられるでしょう。独学には向き不向きがあり、実はスクールが向いている人も大勢います。実際のコードを使用して初心者向けに解説します。Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。selectは、hashやarrayから条件にあった要素だけを取り出すためのメソッドです。hashにselectを使う場合には、取り出したいhashの値の条件やキーの条件を指定します。selectは配列にも使えますが、ここではhashに使う方法をご紹介します。前述の通り、selectはメソッドです。hashは、キーと値をペアで要素として持つ集合です。selectはhashやarray用に用意されたメソッドです。selectを使うと、hashから順にペアを取り出して処理したり、指定した条件に合ったペアだけを新たなhashとして取り出すことができます。selectは、以下のようにして使います。書き方が違うだけで同じ処理となります。この使い方だとどちらもeachを使った時と同じ動作になります。以下のような使い方もあります。対象のhashから、条件がtrueになるペアだけを含む新たなhashを戻り値として取得できます。こちらはeachの時とは違う動作になります。kとvのペアに対して処理が実行されます。実際のコードを使用して初心者向けに解説します。Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。hashのsortとは、hashの中身を条件にあった順に並べ替えるためのメソッドです。Railsでhashを初期化する方法を現役エンジニアが解説【初心者向け】の記事も合わせてご覧ください。hashは要素を追加しても集合を自動で並べ替えてくれません。実際にhashに要素を設定してみると、設定した順になっていることがわかります。このプログラムは、hashを定義して表示するだけのプログラムです。実行すると以下のように表示されます。設定した順に並んでいます。場合によってはhashのキーをアルファベット順にしたり、hashの値をアルファベット順にしたりして並べ替えた方が、処理上都合がいい時があります。こちらは、キーをアルファベット順に並べ替えてから表示した例です。昇順/降順とは何だったでしょうか。先におさらいしておきます。アルファベットのaから順にzの順に並べることを昇順と言います。逆にzからaの順に並べることを降順と言います。文字は全て文字コードを持っていて、文字コードの小さい順が昇順、大きい順が降順です。hashをキーで昇順にsortします。実はsortの結果はarray(配列)となりますので、hashに変換するためにto_hメソッドを使います。次のような少し複雑な方法もあります。k1とk2がキー、v1とv2が値です。k2で、キーで昇順の意味になります。hashをキーで降順にsortします。こちらも、次のような少し複雑な方法もあります。k1で、キーで降順の意味になります。値でsortするには、少し複雑な方法を使います。