0

私は次の配列を持っています:

[#<PatchedOpenStruct name="Kristen Stewart", id="162655167", characters=["Snow White"]>, #<PatchedOpenStruct name="Chris Hemsworth", id="770829335", ch
aracters=["The Huntsman"]>, #<PatchedOpenStruct name="Charlize Theron", id="162654733", characters=["The Queen"]>, #<PatchedOpenStruct name="Viggo Mort
ensen", id="162654541">, #<PatchedOpenStruct name="Sam Claflin", id="771073196", characters=["Prince"]>]

これからすべての「名前」フィールドをフィルタリングしようとしています。何か助けはありますか?

4

2 に答える 2

2

これらが標準のOpenStructsである場合、これを行うために私が考えることができる2つの方法。

array_of_things.collect{|each_thing| each_thing.name}すべてのもののすべての名前の配列を返します。 array_of_things.select{|each_thing| each_thing.name =~ /Kristen/}式に一致する名前を持つものの配列を返します/Kristen/

于 2012-05-21T17:03:15.760 に答える
2

すべての名前を抽出するだけの場合は、collect(またはそのmapエイリアス) を使用nameして配列の各要素に対してメソッドを呼び出し、結果を別の配列に収集します。

names = a.collect(&:name)
于 2012-05-21T16:52:47.123 に答える