8

次のようなオブジェクトの配列があります。

[
    #<name: "value1", field: "field_A">,
    #<name: "value2", field: "field_B">,
    #<name: "value3", field: "field_C">
]

出力として欲しい:

"value1 value2 value3"

私が現在していること:

variable = ''
array.each { |x| variable << x.name << ' ' }

これは醜く、最後に余分なスペースが残ります。私は Array::join に行きたいと思っていますが、そこからオブジェクトフィールドにアクセスする方法が見つかりません。私が使用すべき join に似た別の方法はありますか、または別のより賢明なアプローチはありますか?

任意の提案をいただければ幸いです。

4

2 に答える 2

13
array.map(&:name).join(" ")
于 2013-01-27T01:30:09.700 に答える
2

に参加するには、 メソッドArrayを使用する必要がありますjoin。オプションの区切り文字を取ります (そのデフォルト値は、デフォルトでは$,whichnilです)。

array.collect(&:name).join ' '

&:method構文は、 の単なる省略形です{ |x| x.method }

于 2013-01-27T01:30:16.187 に答える