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方法。它需要一个可选的分隔符(其默认值是默认值$,nil

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

&:method语法只是{ |x| x.method }.

于 2013-01-27T01:30:16.187 回答