【发布时间】:2019-11-05 17:29:34
【问题描述】:
我有一个看起来像这样的哈希:
my_hash = {"positions"=>[[2, 3, 13, 56], [2, 3, 13]]}
我想删除散列中的第一个数组:
wanted_hash == {"positions"=> [2, 3, 13]}
我试过了:
wanted_hash = my_hash.values[0].pop
但这会删除错误的数组。我不知道为什么,但它删除了[2,3,13]。
【问题讨论】:
-
这是一种无需改变原始哈希的方法:
my_hash.merge(my_hash) { |*,n| n.last } #=> {"positions"=>[2, 3, 13]}。我更喜欢 @Sebastian 的解决方案,但如果需要支持 2.4 之前的 Ruby 版本,这可能会很有用,届时 Hash#transform_values 可能会首次亮相。 -
删除第一个内部数组会导致
[[2, 3, 13]]- 您是否还想要展平外部数组?或者也许用它的第二个元素替换外部数组? -