我在Ruby on Rails中有一个数组。
[city, state, zip].reject(&:blank?).join(' ')
我想在数组的第一个元素后添加逗号,即城市
"Atlanta, GA 30114"
hjqgdpho1#
Rails 6.1引入了Enumerable#compact_blank。您可以使用它代替reject(&:blank?)如果你需要在城市后面加上逗号,只要在城市后面加上逗号就可以了
Enumerable#compact_blank
reject(&:blank?)
def format_city(city, state, zip) city_with_comma = "#{city}," if city.present? [city_with_comma, state, zip].compact_blank.join(" ") end
format_city(nil, "GA", "30114") # => "GA 30114" format_city("Atlanta", "GA", "30114") # => "Atlanta, GA 30114"
baubqpgj2#
要在Ruby on Rails中数组的第一个元素后添加逗号,请执行以下操作:
result = [array[0], array[1..-1].reject(&:blank?).join(' ')].join(', ') puts result
reject(&:blank?)确保从结果数组中删除任何空白或空元素。join(', ')将数组的元素组合成一个字符串,由逗号和空格分隔result变量将保存所需的输出:“Atlanta,GA 30114”,城市名称后加逗号。
join(', ')
result
有趣的事实:
blank?通常在Ruby on Rails中使用,而不是默认Ruby中通常使用的empty?
blank?
empty?
1l5u6lss3#
有很多种方法还有一个...
city,state,zip = ["Atlanta","GA","30114"] [(city+"," if city),state,zip].compact.join(" ") => "Atlanta, GA 30114"
当城市为空时:
city,state,zip = [nil,"GA","30114"] [(city+"," if city),state,zip].compact.join(" ") => "GA 30114"
3条答案
按热度按时间hjqgdpho1#
Rails 6.1引入了
Enumerable#compact_blank
。您可以使用它代替reject(&:blank?)
如果你需要在城市后面加上逗号,只要在城市后面加上逗号就可以了
baubqpgj2#
要在Ruby on Rails中数组的第一个元素后添加逗号,请执行以下操作:
reject(&:blank?)
确保从结果数组中删除任何空白或空元素。join(', ')
将数组的元素组合成一个字符串,由逗号和空格分隔result
变量将保存所需的输出:“Atlanta,GA 30114”,城市名称后加逗号。有趣的事实:
blank?
通常在Ruby on Rails中使用,而不是默认Ruby中通常使用的empty?
1l5u6lss3#
有很多种方法还有一个...
当城市为空时: