ruby-on-rails 在Rails中的数组第一个元素中添加逗号

bjg7j2ky  于 2023-05-23  发布在  Ruby
关注(0)|答案(3)|浏览(121)

我在Ruby on Rails中有一个数组。

[city, state, zip].reject(&:blank?).join(' ')

我想在数组的第一个元素后添加逗号,即城市

"Atlanta, GA 30114"
hjqgdpho

hjqgdpho1#

Rails 6.1引入了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"
baubqpgj

baubqpgj2#

要在Ruby on Rails中数组的第一个元素后添加逗号,请执行以下操作:

result = [array[0], array[1..-1].reject(&:blank?).join(' ')].join(', ')
puts result

reject(&:blank?)确保从结果数组中删除任何空白或空元素。
join(', ')将数组的元素组合成一个字符串,由逗号和空格分隔
result变量将保存所需的输出:“Atlanta,GA 30114”,城市名称后加逗号。

有趣的事实:

blank?通常在Ruby on Rails中使用,而不是默认Ruby中通常使用的empty?

1l5u6lss

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"

相关问题