2016-05-30 13 views

答えて

1

使用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 } 
+0

素晴らしい!どうもありがとう!! – ChuchaC

+0

何今私は、例えば、結果としての要素を組み合わせたい場合について:エクセレント – ChuchaC

1

[a,b,c].map(&:first) 

は...の省略形である配列の配列によって

[a, b, c].map(&:first) 
# => [1,:blue,"Tacos"] 
ここ

map反復処理して、新しい配列を返します。各要素にfirstを呼び出した結果

&:firstは、実際に{ |a| a.first }のショートカットです。その詳細はhereです。

+0

:[黄、 "タコス" 2、] または new_array =:[赤、 "ブリトー" 2、] new_array =! !! 各配列の2番目または3番目の要素を持つ配列が必要な場合はどうなりますか? – ChuchaC

+0

元の質問の範囲外であり、別の質問である必要があります。ただし、最初にその質問のStackOverflowを検索する必要があります。誰かがそれを尋ねてきた可能性があり、重複した質問の数を最小限に抑えるためにSOの市民になるでしょう。ところで、有益な回答をすべてアップして、最高のものにチェックマークを付けるようにしてください。 –

+1

さて、 'first'は、最初の要素の便利な方法です。任意の要素にアクセスするには、 '[]'構文を使用します。ですから、各配列の3番目の要素のために、例えば、 '[a、b、c] .map {| array |配列[2]} ' Rubyの配列はゼロベースなので、インデックス '[2]'は3番目の要素を参照していることを覚えておいてください。最初は '[0]'です。 – mlovic

関連する問題