Ruby 哈希的过滤键

Ruby 哈希的过滤键,ruby,hash,Ruby,Hash,我在hashes变量中有这些散列: {:priority=>100, :iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥", :alternate_symbols=>["円", "圓"], :subunit=>"Sen", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"¥", :decimal_m

我在
hashes
变量中有这些散列:

{:priority=>100, :iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥", :alternate_symbols=>["円", "圓"], :subunit=>"Sen", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"¥", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>""}
{:priority=>100, :iso_code=>"ZWD", :name=>"Zimbabwean Dollar", :symbol=>"$", :alternate_symbols=>["Z$"], :subunit=>"Cent", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"$", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"716"}
{:priority=>100, :iso_code=>"ZWL", :name=>"Zimbabwean Dollar", :symbol=>"$", :alternate_symbols=>["Z$"], :subunit=>"Cent", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"$", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"932"}
{:priority=>100, :iso_code=>"ZWN", :name=>"Zimbabwean Dollar", :symbol=>"$", :alternate_symbols=>["Z$"], :subunit=>"Cent", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"$", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"942"}
{:priority=>100, :iso_code=>"ZWR", :name=>"Zimbabwean Dollar", :symbol=>"$", :alternate_symbols=>["Z$"], :subunit=>"Cent", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"$", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"935"}
我只想用三个键填充/更新
哈希值
变量:

:iso_code
:name
:symbol
我怎么做呢?

您也可以使用哈希方法

{:priority=>100, :iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥", :alternate_symbols=>["円", "圓"], :subunit=>"Sen", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"¥", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>""}
.select{|k, _| [:iso_code, :name, :symbol].include?(k)}
# => {:iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥"}
1.9.3p392 :001 > hsh = {:priority=>100, :iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥", :alternate_symbols=>["円", "圓"], :subunit=>"Sen", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"¥", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>""}
 => {:priority=>100, :iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥", :alternate_symbols=>["円", "圓"], :subunit=>"Sen", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"¥", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>""} 
1.9.3p392 :002 > hsh.keep_if {|key,value| ([:iso_code, :name, :symbol]).include?(key)}
 => {:iso_code=>"JPY", :name=>"Japanese Yen", :symbol=>"¥"} 

你能解释一下| k,124;……下划线是什么意思吗?@sunny1304本例中的块包含两个变量:散列中每对的键和值。下划线是Ruby中的一种约定,用于指示未使用的变量。感谢您工作正常:)。当做