gpt4 book ai didi

arrays - 迭代哈希以检索与数组匹配的值

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:42 25 4
gpt4 key购买 nike

我有密码 -

class Conversion
hash ={'I' => 1, 'V' => 5, 'X' => 10, 'L' => 50, 'C' => 100, 'D' => 500, 'M' => 1000}
puts "enter the string"
input = gets.chomp.upcase.split(//)
result = 0
hash.each do | key, value |
case key
when 'M'
result = result + value
when 'D'
result = result + value
when 'C'
result = result + value
when 'L'
result = result + value
when 'X'
result = result + value
when 'V'
result = result + value
when 'I'
result = result + value
end
end
puts result
end
c= Conversion.new

我通过命令行给出一个像 mxv 这样的字符串,并将其转换为一个数组,并将其作为“输入”中的 MXV。现在我想遍历哈希,这样我就可以获得数组中作为字符串的键的相应“值”。例如,对于 MXV ,我需要值 = [1000, 10, 5]。

我该怎么做?

最佳答案

arr = []
"MXV".each_char do |i|
arr << hash[i.capitalize]
end
arr = [1000, 10, 5]

"MXV".each_char.map { |i| hash[i.capitalize] } 

如果你输入的字符在哈希键中不存在

例如:

"MXVabc".each_char.map { |i| hash[i.capitalize] } 

它会输出:

=> [1000, 10, 5, nil, nil, 100]

你只需要使用compact方法。

"MXVabc".each_char.map { |i| hash[i.capitalize] }.compact
=> [1000, 10, 5, 100]

关于arrays - 迭代哈希以检索与数组匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30136714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com