2017-08-25 24 views
1

配列からその要素の属性に基づいて要素を抽出する方法に関する簡単な質問があります。要素の属性に基づいて配列内の要素を取得

私はオブジェクトの配列を持っている:

obj_array = [obj1,obj2,obj3........] 

各オブジェクトは、オブジェクトを返す「タイプ」と呼ばれる属性を持っています。だから、

object1.type = type1 
object2.type = type3 
object3.type = type8 
object4.type = type1 
... 

は私が見つけると「TYPE1」で入力されobj_array内のオブジェクトのリストを抽出し、配列に格納したいと思います。結果の配列は次のようになります。ここでは

type1_array = [object1,object4]

は、ループを使用して、私のソリューションです:

type1_array = [] 
obj_array.each do |e| 
    if e.type == type1 
     type1_array << e 
    end 
end 

は、内のすべての要素をループすることなく、Rubyでこれを行うには、短い方法はあります配列?

答えて

2

Ruby's selected methodはおそらくあなたが探しているものです。

obj_array.select { |obj| obj.type == type1 } 

明らかに、type1を定義してください。

+0

はい、type1は事前定義されたオブジェクトです。ありがとうございました!! – danynl

+0

これは動作しません。あなたのコードは、ブロックが最初に実行されるとすぐに、つまり配列の最初の要素で、囲みメソッドから '返されます。 –

+0

@JörgWMittagそれをキャッチするために感謝します。私は最近、あまりにも多くのjavascriptをやってきた:) – larz

関連する問題