Ruby выводит содержимое массива в виде строки, разделенной запятыми Ruby



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



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

@emails * ","

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


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

601   3  

3 ответов:

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

@emails.join(",")

хотя 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

    Ничего не найдено.