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/

10-10 06:24