【发布时间】:2015-11-19 19:18:15
【问题描述】:
我检查了this question 和that other similar question,它们都没有提供用多个测试值替换数组元素的解决方案。
我有一个 Ruby 数组:
array = ["america", "europe", "asia", "africa", "france", "usa", "spain", "paris", "los angeles"]
我想转换这个数组,得到以下结果:
array = ["continent", "continent", "continent", "continent", "country", "country", "country", "city", "city"]
我的第一次尝试是这样做:
array.collect! do |element|
(element == "america") ? "continent" : element
(element == "europe") ? "continent" : element
(element == "asia") ? "continent" : element
(element == "africa") ? "continent" : element
(element == "france") ? "country" : element
(element == "usa") ? "country" : element
(element == "spain") ? "country" : element
(element == "paris") ? "city" : element
(element == "los angeles") ? "city" : element
end
这段代码有两个问题:
我不确定这是使用 Ruby
block和doend的方法。此代码不是
DRY,我相信我可以使用一组三个case循环,一个用于大陆,一个用于国家,一个用于城市。
【问题讨论】: