people = [
{id: 101, first_name: 'John', last_name: 'Doe'},
{id: 102, first_name: 'Tom', last_name: 'Rogers'},
{id: 103, first_name: 'Bill', last_name: ''}
]
我想放一个这样的名字列表
"John Doe, Tom Rogers, Bill"
我如何在 ruby 中实现这一点?
答案 0 :(得分:1)
输入
people = [
{ id: 101, first_name: 'John', last_name: 'Doe' },
{ id: 102, first_name: 'Tom', last_name: 'Rogers' },
{ id: 103, first_name: 'Bill', last_name: '' }
]
代码
p people.map { |x| x[:first_name].to_s + ' ' + x[:last_name].to_s }
.map(&:strip)
.join(",")
输出
"John Doe,Tom Rogers,Bill"
答案 1 :(得分:0)
我愿意
people
.map { |p| p.values_at(:first_name, :last_name).join(' ').strip }
.join(', ')
#=> "John Doe, Tom Rogers, Bill"
或
people
.map { |p| "#{p[:first_name]} #{p[:last_name]}".strip }
.join(', ')
#=> "John Doe, Tom Rogers, Bill"
答案 2 :(得分:0)
其他答案很好,但我想添加字符串插值的演示。
people
.map { |p| "#{p[:first_name]} #{p[:last_name]}" }
.join(", ")
@rajagopalan 有一个好主意,使用 strip
删除名字和姓氏组合开头和结尾处不需要的空格,但在名称的每个组成部分上运行它可能会更好。< /p>
people
.map { |p| "#{p[:first_name].strip} #{p[:last_name].strip}" }
.join(", ")