people_names = ["Mike", "Tom", "Alison", "Jerry", "Cam"]
people_caps = people_names.each.upcase
# people_caps => ['MIKE', 'TOM', 'ALISON', 'JERRY', 'CAM']
我正在尝试将数组中的每个项目的人名更改为所有大写。
我可以这样做:
people_caps = people_names.each {|name| name.upcase!}
但是,它也只是将人名更改为所有大写字母,但是只有人名才应该包含所有大写字母,人名应该保持不变。
最佳答案
您的代码也会更改,因为您对该数组中的所有(people_names
)元素调用了upcase!
。
如果只想返回新数组而不是更改旧数组,请使用:
people_caps = people_names.map { |name| name.upcase }
或更短:
people_caps = people_names.map(&:upcase)
关于ruby - Ruby Array方法array.each.uppercase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26600082/