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

che*_*ell 74 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"
Run Code Online (Sandbox Code Playgroud)

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

Hen*_*rik 177

你试过这个:

@emails.join(",")
Run Code Online (Sandbox Code Playgroud)

  • `join`是`*`的别名,所以这只是重复OP的问题. (21认同)
  • 但“join”肯定更容易理解。 (2认同)

Jon*_*ern 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
Run Code Online (Sandbox Code Playgroud)

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