Rubyの配列クラスの使用方法(例+便利なメソッド)
アレイとは何ですか?
配列は組み込みのRubyクラスであり、0個以上のアイテムのリストを保持します 、およびこれらすべてのアイテムを簡単に追加、アクセス、およびループするのに役立つメソッドが含まれています。
配列が存在しない場合は多くの変数を使用する必要があるため、これは便利です。
例 :
a =1b =2c =3
しかし、代わりに、あなたはそうすることができます :
番号=[1、2、3]
最良の部分は?
配列内には何でも入れることができます!
いいね :
- 数字
- 文字列
- より多くのアレイ! (それは多次元配列になります)
アレイを最大限に活用できるように、アレイについて詳しく学びましょう。
コンテンツ
- 1配列はゼロインデックスです
- 2つのRuby配列メソッド
- 3配列を文字列に変換する方法
- 4つの多次元配列(2D配列など)
- 5Ruby配列を反復処理する方法
- 6ネガティブインデックス
- 7つのその他の配列操作
- 複数のアレイを使用した8つの操作
- 9結論
- 9.1関連
配列はゼロインデックスです
要素にアクセスできます インデックスを使用した配列内 、0から始まります。
「猫」、「犬」、「虎」という単語を含む配列がある場合は、次のようになります。
写真のデータを表すコード例は次のとおりです。
["cat"、 "dog"、 "tiger"]
今 :
アレイで何ができるかがわかります!
Ruby配列メソッド
アレイを作成する方法を学ぶことから始めましょう。
空の配列を作成してから新しいアイテムを追加するか、開始値を使用して配列を作成できます。
空のアレイを初期化します :
users =[]
データを使用してアレイを初期化します :
users =["john"、 "david"、 "peter"]
文字列のみの配列を作成している場合…
%w
を使用して配列を作成することにより、すべての文字列の引用符を入力する必要がなくなります。 。
例 :
users =%w(john david peter)
配列ができたので、そこに含まれる要素にアクセスできます。
方法は次のとおりです :
users [0]#arrayusersの最初の要素[1]#arrayusersの2番目の要素[2]#配列の3番目の要素
最初と最後の方法を使用することもできます:
users.first#配列の最初の要素users.last#配列の最後の要素
配列にアイテムを追加する方法は次のとおりです。
#どちらも同じ効果があります。<<が優先されます。users.push "andrew" users <<"andrew"
配列から要素を削除する方法は次のとおりです。
last_user =users.pop#配列から最後の要素を削除し、ituser.delete_at(0)を返します#配列の最初の要素を削除します
シフトとアンシフトのメソッドもあります。これはポップ/プッシュに似ていますが、配列の前に要素を取得または追加します。
users.unshift "robert"#arrayusers.shiftの前に要素を追加します#配列の最初の要素を削除して返します
この配列には特定のアイテムが含まれていますか、または含まれていますか?
Rubyの配列に値が存在するかどうかを確認します:
numbers =[1,2,3] numbers.include?(2)#truenumbers.include?(10)#false
アレイの長さはどれくらいですか? (つまり、含まれている要素の数)
words =["cat"、 "coconut"、 "bacon"] words.size#3
こちらがあなたのための小さな虎の巻です :
操作 | メソッド |
---|---|
初期化 | Array.new、[]、%w |
読む | [0]、最初、最後 |
追加 | プッシュ、<<、シフト解除 |
削除 | pop、delete_at、shift |
配列を文字列に変換する方法
Array#join
を使用して、任意の配列を文字列に変換できます メソッド。
ここに例があります :
Letters =%w(a b c d)letters.join# "abcd"
このメソッドは1つのオプションのパラメーターを受け取るため、配列要素を結合するときに配列要素間に区切り文字を定義できることに注意してください。
letters =%w(a b c d)letters.join( "")# "a b c d"
文字列から配列への逆の操作が必要な場合は、split
を使用します。 方法:
"a b c" .split
結果は次のようになります:
["a"、 "b"、 "c"]
多次元配列(2D配列など)
配列は他の配列で構成することもできます。これを多次元配列と呼びます。
2D配列の例 :
users =[[1、'Peter']、[2、'Steven']]
最初のサブ配列から最初の要素にアクセスするには、次の構文を使用できます。
users [0] [0]#1
そして、最初のサブ配列の2番目の要素の場合:
users [0] [1]#'ピーター'
多次元配列を通常の配列に変換したい場合があります。
フラット化方法を使用してそれを行うことができます:
users.flatten#[1、 "Peter"、2、 "Steven"]
Ruby配列を反復処理する方法
配列ができたので、その内容を列挙して印刷できたら素晴らしいと思いませんか?
良いニュースはあなたができるということです!
例 :それぞれを使用して配列を印刷します
users.each {| item |アイテムを置く}
値とインデックスの両方を操作する必要がある場合は、配列のそれぞれをインデックスメソッドで使用できます。
users.each_with_index {| item、idx | "#{item} with index#{idx}"}を配置します
注 :これらのループ操作のほとんどは、デフォルトでArrayクラスに混合されているEnumerableモジュールのおかげで利用できます。
例 :マップを使用して配列内のすべての単語を大文字にします。
users =users.map {| user | user.capitalize} users =users.map(&:capitalize)
map
メソッドはその場で配列を変更せず、変更された要素を含む新しい配列を返すだけなので、結果を変数に割り当てる必要があります。
マップがあります! (感嘆符に注意してください)配列を直接変更する方法ですが、一般的にはより単純なバージョンが推奨されます。
あなたがしたいと思うかもしれないもう一つのことは、特定の基準に合う配列内のすべてのアイテムを見つけることです。
例 :10より大きいすべての数字を検索します:
numbers =[3、7、12、2、49] numbers.select {| n | n> 10}#=> 12、49
ネガティブインデックス
Ruby配列から特定の要素にアクセスする場合は、インデックス作成(またはfirst
などのメソッド)を使用する必要があることを学びました。 &last
。
しかし、ネガティブインデックスについてはどうでしょうか?
-1
のようなものを使用することについて話している 配列インデックスとして。
Rubyが行うことは、配列の最後から開始することです。つまり、-1
最後のアイテム-2
を取得します 最後から2番目などになります。
例 :
文字=["a"、 "b"、 "c"]文字[-1]# "c"文字[-2]# "b"
その他の配列操作
配列を並べ替えたり、ランダムな要素を選択したりするなど、配列を使用して実行できることはたくさんあります。
sortメソッドを使用して配列をソートできます。これは、配列内に文字列または数値しかない場合に正常に機能します。より高度な並べ替えについては、sort_byを確認してください。
numbers =numbers.sort
配列から重複する要素を削除することもできます。これを頻繁に行う場合は、代わりにセットの使用を検討することをお勧めします。
numbers =[1、3、3、5、5] numbers =numbers.uniq#=> [1、3、5]
これによってアレイが永続的に変更されるわけではないことに注意してください。ほとんどのRubyメソッドは、要求した変更を使用して新しい配列を作成します。したがって、結果を保存する場合は、変数を使用する必要があります。この例では、uniq!
を使用します。 メソッド。
配列からランダムな要素を1つ選択する場合は、sample
を使用できます。 方法:
numbers.sample
アレイ全体ではなく一部を使用して、アレイを「スライス」することもできます。
例 :配列を変更せずに、配列から最初の3つの要素を取得します:
numbers.take(3)numbers [0,3]
より高度なRuby配列スライシングを行うことができます。たとえば、最初の要素を除くすべての要素を取得したい場合があります:
番号[1..-1]
カンマ(0,3
)の使用の違いに注意してください )&範囲(1..-1
)。最初のものは「インデックス0から始まる3つの要素を取得する」と言い、最後の1つは「この範囲の文字を取得する」と言います。
配列のサイズを取得します:
numbers.size#5
配列が空かどうかを確認します:
numbers.empty?#false
nil
を削除します 値:
numbers <複数の配列を使用した操作
2つのアレイがあり、それらを1つに結合またはマージする場合は、次のように実行できます。
#これによりユーザーが変更されるため、より高速にarrayusers.concat(new_users)#新しいarrayusersが作成されるため、より低速このように1つの配列から要素を削除することもできます。ここで、
users_to_delete
配列でもあります:users =users --users_to_delete最後に、2つの配列に同時に表示される要素を取得できます。
users&new_users結論
Rubyアレイは非常に便利であり、強力な味方になります。
配列の作成、配列への要素の追加、インデックスによる要素へのアクセスなどを必ず練習してください。また、配列と組み合わせてより興味深いコードを記述できるもう1つの重要なクラスであるRubyハッシュについても読んでください。
練習は完璧です!
これが役に立ったと思ったら、この投稿を共有して、以下の私のニュースレターを購読してください🙂
-
Ruby Mapメソッドの使用方法(例付き)
Mapは、配列、ハッシュ、範囲で使用できるRubyメソッドです。 マップの主な用途は、データを変換することです。 例 : 文字列の配列が与えられた場合、すべての文字列に目を通し、すべての文字を大文字にすることができます。 または、Userのリストがある場合 オブジェクト… 変換できます 対応するメールアドレス、電話番号、またはその他の属性のリストにそれらを追加します Userで定義 クラス。 これを行う方法を正確に見てみましょう! ルビーマップ構文 マップの構文は次のようになります: array = [a, b, c] array.map { |string| string.
-
RubyでStructとOpenStructを使用する方法
Rubyの構造体とは何ですか? 構造体は組み込みのRubyクラスであり、値オブジェクトを生成する新しいクラスを作成するために使用されます。値オブジェクトは、関連する属性を一緒に格納するために使用されます。 ここに例があります : Point 2つの座標(x &y 。 このデータはさまざまな方法で表すことができます。 いいね : 配列[10, 20] ハッシュ{ x: 10, y: 10 } オブジェクトPoint.new(10, 20) 複数のPointを使用する場合 、オブジェクトアプローチを使用することをお勧めします。 しかし… これら2つの値を一緒に格納するた