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

时间:2015-05-09 06:17:10

标签: arrays ruby iteration hash

我有代码 -

<div id="wrap">
    <div class="card" id="card1">black</div>
    <div class="card" id="card2">pink</div>
    <div class="card" id="card3">orange</div>
</div>

我通过命令行给出一个像mxv这样的字符串,并将其转换为数组,并将其作为MXV输入&#39;。 现在我想迭代Hash,这样我就可以获得相应的值了#39;我在数组中作为String的键。 例如,对于MXV,我需要值= [1000,10,5]。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

a

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

答案 1 :(得分:0)

我做了一些研究,并在堆栈上提到了这篇文章 - Ruby - getting value of hash

并解决了我的问题 -

  input.each do |i|
  value =  hash[i.to_sym]
    puts value
  end

感谢任何花时间仔细研究这个问题的人。