Ruby выводит содержимое массива в виде строки через запятую Ruby

Есть ли более правильный способ вывода содержимого массива в виде строки с разделителями-запятыми

@emails = ["[email protected]", "[email protected]", "[email protected]"]

@emails * ","

=> "[email protected]", "[email protected]", "[email protected]"

Это работает, но я уверен, что должно быть более элегантное решение.

66 голосов | спросил chell 22 PM00000020000002631 2011, 14:50:26

3 ответа


0

Вы пробовали это:

@emails.join(",")
ответил Henrik 22 PM00000020000005531 2011, 14:52:55
0

Хотя ОП и многие ответы подразумевают, что в массиве всегда есть контент, иногда мне нужно присоединиться к списку, который может содержать «пустые» элементы (обычно для объединения данных для пользовательского интерфейса).

Вот небольшая «прогрессия» того, как разные подходы обрабатывают такой «несовершенный» массив строк:

['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) подход.

ответил Jon Kern 12 MonEurope/Moscow2016-12-12T02:02:48+03:00Europe/Moscow12bEurope/MoscowMon, 12 Dec 2016 02:02:48 +0300 2016, 02:02:48
0

Мне просто нужно было сделать нечто подобное в шаблоне ERB, используя AllowedUsers <%= _allowed_users.join(" ") %>. Это может быть не так элегантно, как вы искали, но это та же самая реализация, которую я видел на нескольких языках, так что это может быть победой для удобства чтения

ответил Fraq 14 PMpTue, 14 Apr 2015 20:09:21 +030009Tuesday 2015, 20:09:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132