Ruby выводит содержимое массива в виде строки, разделенной запятыми Ruby
есть ли более правильный способ вывода содержимого массива в виде строки с разделителями-запятыми
@emails = ["[email protected]", "[email protected]", "[email protected]"]
@emails * ","
=> "[email protected]", "[email protected]", "[email protected]"
это работает, но я уверен, что должно быть более элегантное решение.
3 ответов:
хотя OP и многие ответы подразумевают, что массив всегда имеет содержимое, иногда мне нужно присоединиться к списку, который может содержать "пустые" элементы (обычно для объединения данных для пользовательского интерфейса).
вот небольшая " прогрессия "того, как разные подходы обрабатывают такой" несовершенный " массив строк:
['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последний из них-мой любимый (рельсы) подход.
Я просто должен был сделать что-то подобное в шаблоне ERB с помощью
AllowedUsers <%= _allowed_users.join(" ") %>. Это может быть не так элегантно, как вы искали, но это та же реализация, которую я видел на нескольких языках, так что это может быть выигрыш для читаемости.
Comments