我有一个对象数组,如下所示:
[
#<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是我要去的地方,但我找不到从它访问对象字段的方法。是否有另一种类似于我应该使用的连接方法,还是有另一种更合理的方法?
任何建议都将不胜感激。
答案 0 :(得分:12)
array.map(&:name).join(" ")
答案 1 :(得分:2)
要加入Array
,您应该使用join
方法。它需要一个可选的分隔符(默认值为$,
,默认情况下为nil
)。
array.collect(&:name).join ' '
&:method
语法只是{ |x| x.method }
的缩写。