gpt4 book ai didi

ruby - 像 Array#map 一样轻松映射 Hash

转载 作者:数据小太阳 更新时间:2023-10-29 08:14:21 26 4
gpt4 key购买 nike

有时我想映射一个集合。如果它是一个数组,那很容易:

foo = [1,2,3]
foo.map {|v| v + 1}
#=> [2, 3, 4]

但是散列的工作方式不同:

bar = {a: 1, b: 2, c: 3}
bar.map{|k,v| v+1}
#=> [2, 3, 4]

我真正喜欢的是:

bar = {a: 1, b: 2, c: 3}
bar.baz{|k,v| v+1}
#=> {:a=>2, :b=>3, :c=>4}

Hash#baz 是一些方法。有没有一种简单的方法可以让哈希获得“类似 map ”的体验?

最佳答案

在 Ruby 2.4 中,您可以使用内置的 Hash#transform_values :

bar = {a: 1, b: 2, c: 3}
# => {:a=>1, :b=>2, :c=>3}
bar.transform_values {|v| v+1 }
# => {:a=>2, :b=>3, :c=>4}

关于ruby - 像 Array#map 一样轻松映射 Hash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42145524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com