转换集合

时间:2011-01-30 21:10:45

标签: ruby

我有一组字符串,我希望通过运行函数进行普遍转换,例如add_underscore(string)

在没有迭代代码的情况下,是否有一种原生语法方法可以做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以使用map将函数应用于集合中的每个元素。

>> a = [ "a", "b", "c", "d" ]
=> ["a", "b", "c", "d"]
>> a.map { |x| x.upcase }
=> ["A", "B", "C", "D"]

答案 1 :(得分:3)

以MYYN的回答为基础......

set = [ 'one', 'two', 'three', 'four' ]

# in Ruby 1.9 this:
set.map &:capitalize  # => [ 'One', 'Two', 'Three', 'Four' ]

# is the same as this:
set.map { |x| x.capitalize }

请注意map返回一个新数组,它不会修改现有数组。此外,它使用enumerable迭代数组中的每个项目;这仍然是做到这一点的最佳方式,只是想你可能想知道。