Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Ruby Mapメソッドの使用方法(例付き)

Mapは、配列、ハッシュ、範囲で使用できるRubyメソッドです。

マップの主な用途は、データを変換することです。

文字列の配列が与えられた場合、すべての文字列に目を通し、すべての文字を大文字にすることができます。

または、Userのリストがある場合 オブジェクト…

変換できます 対応するメールアドレス、電話番号、またはその他の属性のリストにそれらを追加します Userで定義 クラス。

これを行う方法を正確に見てみましょう!

ルビーマップ構文

マップの構文は次のようになります:

array = ["a", "b", "c"]

array.map { |string| string.upcase }

# ["A", "B", "C"]

まず、配列がありますが、ハッシュまたは範囲の場合もあります。

次に、mapを呼び出します ブロック付き。

ブロックは角かっこで囲まれたものです{ ... } 。ブロック内で、配列内のすべての要素をどのように変換するかを言います。基本的には機能です。

mapを呼び出した後に何が起こるか ?

マップは新しい配列を返します 結果とともに。

オリジナルは変更されません。

元の配列を変更する場合は、map!を使用できます。 。

ルビーマップの例

役立つと思われる例をいくつか示します。

数字を2倍にする

array = [1,2,3]

array.map { |n| n * 2 }
# [2, 4, 6]

文字列を整数に変換

array = ["11", "21", "5"]

array.map { |str| str.to_i }
# [11, 21, 5]

ハッシュ値をシンボルに変換する

hash = { bacon: "protein", apple: "fruit" }

hash.map { |k,v| [k, v.to_sym] }.to_h
# {:bacon=>:protein, :apple=>:fruit}

このハッシュの例について:

ハッシュ要素がキーと値で構成されているため、1つではなく2つの引数があることがわかります。

次に、変換されたキーと値を含む新しい配列を返します。

最後のステップは、これをハッシュに戻すことです。

ルビーマップと各

マップとそれぞれの違いは何ですか?

それぞれがより原始的なバージョンの地図のようなものです …

すべての要素が提供されるため、操作できますが、結果は収集されません。

は常に元の変更されていないオブジェクトを返します

マップは同じことをしますが…

変換された要素を含む新しい配列を返します。

array.each { |n| n * 2 }
# [1, 2, 3]

array.map { |n| n * 2 }
# [2, 4, 6]

ルビーマップと収集

マップと収集はまったく同じ方法です。

それらは同じものの異なる名前です!

どちらを使用する必要がありますか?

オープンソースプロジェクトを読むと、最も一般的なバージョンはmapであることがわかります。 。

それを使用してください。

インデックス付きのマップの使用方法

値を含むインデックスが必要な場合は、with_indexを使用できます メソッド。

ここに例があります

array = %w(a b c)

array.map.with_index { |ch, idx| [ch, idx] }

# [["a", 0], ["b", 1], ["c", 2]]

ボーナスのヒント

パラメータをwith_indexに渡すことができます インデックス0から始めたくない場合。

ルビーマップの速記(マップ&)

mapの短縮版を使用できます 引数を必要としないメソッドを呼び出す場合 。

["11", "21", "5"].map(&:to_i)

["orange", "apple", "banana"].map(&:class)

この構文はmapに限定されません 、他の列挙可能な方法で使用することもできます。

マップメソッドマインドマップ

Ruby Mapメソッドの使用方法(例付き)

ビデオチュートリアル

概要

Rubyマップメソッドとその使用方法について学習しました。また、マップと収集のそれぞれの違いについても学びました。

この記事が気に入ったら、Rubyの友達と共有してください🙂

読んでくれてありがとう!


  1. Ruby Grepメソッドの使用方法(例付き)

    grepについて話しましょう メソッド。 この方法で何ができますか? Grepを使用して、配列や範囲などの列挙可能なオブジェクトをフィルタリングできます。 「しかし、selectはすでにそれを行っています!」 はい。ただし、grepの動作は異なり、結果も異なります。 いくつかの例を見てみましょう。 RubyGrepメソッドの例 この配列が与えられた場合: objects = [a, b, c, 1, 2, 3, nil] grepを使用して文字列のみを取得できます : objects.grep(String) # [a, b, c] 整数のみ: objects.g

  2. Rubyの配列クラスの使用方法(例+便利なメソッド)

    アレイとは何ですか? 配列は組み込みのRubyクラスであり、0個以上のアイテムのリストを保持します 、およびこれらすべてのアイテムを簡単に追加、アクセス、およびループするのに役立つメソッドが含まれています。 配列が存在しない場合は多くの変数を使用する必要があるため、これは便利です。 例 : a =1b =2c =3 しかし、代わりに、あなたはそうすることができます : 番号=[1、2、3] 最良の部分は? 配列内には何でも入れることができます! いいね : 数字 文字列 より多くのアレイ! (それは多次元配列になります) アレイを最大限に活用できるように、アレイについ