Ruby将数组的内容输出为逗号分隔的字符串Ruby

时间:2011-08-22 10:50:27

标签: ruby arrays ruby-on-rails-3

是否有更正确的方法以逗号分隔的字符串

输出数组的内容
@emails = ["joe@example.com", "Peter@example.com", "alice@example.com"]

@emails * ","

=> "joe@example.com", "Peter@example.com", "alice@example.com"

这有效但我相信必须有一个更优雅的解决方案。

3 个答案:

答案 0 :(得分:168)

你试过这个:

@emails.join(",")

答案 1 :(得分:8)

虽然OP和许多答案暗示数组总是有内容,但有时我发现自己需要加入一个可能包含"空"元素(通常用于连接UI的数据)。

这里很少"进展"不同的方法如何处理这样一个"不完善的"字符串数组:

['a','b','',nil].join(',') # => "a,b,," 
['a','b','',nil].compact.join(',') # => "a,b,"
['a','b','',nil].compact.reject(&:empty?).join(',') # => "a,b"
['a','b','',nil].reject(&:blank?).join(',') # Rails only

最后一个是我最喜欢的(Rails)方法。

答案 2 :(得分:2)

我只需要使用 AllowedUsers <%= _allowed_users.join(" ") %>在ERB模板中执行类似的操作。它可能没有你想象的那么优雅,但它与我在几种语言中看到的相同,所以这可能是一个可读性的胜利。