在下面的哈希中,我想从每个键返回第一个'x'值:
my_hash = {
:key_one =>["one", "two", "three", "four", "five"],
:key_two =>["one", "two", "three", "four", "five"]
}
Run Code Online (Sandbox Code Playgroud)
在不改变散列结构的情况下,即密钥保持不变.'x'为2时的预期输出:
my_hash = {
:key_one => ["one", "two"],
:key_two => ["one", "two"]
}
Run Code Online (Sandbox Code Playgroud)
问题是如何"很好地"做到这一点 - 我可以制作一个新的哈希,但这很麻烦,很难看,即使密钥的数量没有增长,它们也可能.
{
:key_one => my_hash[:key_one].first(2),
:key_two => my_hash[:key_two].first(2)
}
Run Code Online (Sandbox Code Playgroud)
my_hash = {
:key_one =>["one", "two", "three", "four", "five"],
:key_two =>["one", "two", "three", "four", "five"]
}
Hash[ my_hash.map { |k,v| [ k, v.first(2) ] } ]
# => {:key_one=>["one", "two"], :key_two=>["one", "two"]}
Run Code Online (Sandbox Code Playgroud)
参考文献:
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |