Rubyの新機能 どのようにして最初の要素を別の配列から取得できますか(私の配列はabcです)、それら:同じインデックスでも異なる配列から要素を出力するruby
a = [1,2,3]
b = [:blue, :red, :yellow]
c = ["Tacos", "Burritos", "Chilli"]
new_array = [1,:blue,"Tacos"]
Rubyの新機能 どのようにして最初の要素を別の配列から取得できますか(私の配列はabcです)、それら:同じインデックスでも異なる配列から要素を出力するruby
a = [1,2,3]
b = [:blue, :red, :yellow]
c = ["Tacos", "Burritos", "Chilli"]
new_array = [1,:blue,"Tacos"]
使用map
と&:first
:
2.3.0 :037 > a = [1,2,3]
=> [1, 2, 3]
2.3.0 :038 > b = [:blue, :red, :yellow]
=> [:blue, :red, :yellow]
2.3.0 :039 > c = ["Tacos", "Burritos", "Chilli"]
=> ["Tacos", "Burritos", "Chilli"]
2.3.0 :040 >
2.3.0 :041 > [a,b,c].map(&:first)
=> [1, :blue, "Tacos"]
map
は、指定された論理回路によって変換された入力配列の配列を返します。
&:first
は、配列[a, b, c]
の各要素にfirst
を呼び出し、各配列の最初の要素を返します。あなたが行うことができ
[a,b,c].map { |array| array.first }
:
[a,b,c].map(&:first)
は...の省略形である配列の配列によって
[a, b, c].map(&:first)
# => [1,:blue,"Tacos"]
ここ
、map反復処理して、新しい配列を返します。各要素にfirstを呼び出した結果
&:first
は、実際に{ |a| a.first }
のショートカットです。その詳細はhereです。
:[黄、 "タコス" 2、] または new_array =:[赤、 "ブリトー" 2、] new_array =! !! 各配列の2番目または3番目の要素を持つ配列が必要な場合はどうなりますか? – ChuchaC
元の質問の範囲外であり、別の質問である必要があります。ただし、最初にその質問のStackOverflowを検索する必要があります。誰かがそれを尋ねてきた可能性があり、重複した質問の数を最小限に抑えるためにSOの市民になるでしょう。ところで、有益な回答をすべてアップして、最高のものにチェックマークを付けるようにしてください。 –
さて、 'first'は、最初の要素の便利な方法です。任意の要素にアクセスするには、 '[]'構文を使用します。ですから、各配列の3番目の要素のために、例えば、 '[a、b、c] .map {| array |配列[2]} ' Rubyの配列はゼロベースなので、インデックス '[2]'は3番目の要素を参照していることを覚えておいてください。最初は '[0]'です。 – mlovic
素晴らしい!どうもありがとう!! – ChuchaC
何今私は、例えば、結果としての要素を組み合わせたい場合について:エクセレント – ChuchaC