我有一个代码,其中我打印所有键和哈希值。我想让它可配置,以便它只打印所需的键而不是所有键。假设我有键k1,k2,k3 ... k20。我想要打印k1,k3,k8 .... k15,k18。什么是最好的方法呢?
这是相关的代码段 - :
<%@order_items.each do |order_item|%>
<h5>Order Item</h5>
<%order_item.each do |key,value|%>
<table cellspacing=2>
<tr><td><%=key.capitalize%>: </td> <td><%= value %></td></tr>
</table>
<%end%>
<%end%>
答案 0 :(得分:2)
有类似的东西:
<% order_item.select{|k,_| [1,3,8,15,18].include?(k)}.each do |key,value| %>
答案 1 :(得分:2)
你也可以这样做
<% [1,3,8,15,18].each do |key|; value = order_item[key] %>
答案 2 :(得分:2)
尝试:
class Hash
def select_keys(*args)
select {|k,v| args.include?(k) }
end
end
然后你可以打电话:
h.select_keys(1,3,8,15,18)
OR
你可以使用:
hash.slice(1,3,8,15,18)
# => { '1' => 'value1', '3' => 'value2', '8' => 'value3', '15' => 'value4', '18' => 'value5' }