如果有哈希:
hash = {a:1,b:2,c:3}试过这个:
对于hash.values中的值 value = value * value结束但返回相同的值没有所需的值,我找到了一个解决方案:
哈希….
我们有一个丰富的标准库来处理Ruby中的集合。它非常有用,涵盖了大多数需要的案例。我们有很好的方法 枚举#地图 , 枚举#过滤器 , 枚举#减少 在红宝石和许多其他人。请阅读文档。
通用方法是生成新的哈希:
new_hash = hash.each_with_object({}) { |(k, v), acc| acc[k] = v * v }
对于2.4.0以来的Ruby,你可以使用 Hash#transform_values 方法:
Hash#transform_values
hash.transform_values{ |value| value * value }
我们更喜欢使用 map, filter, transform_values 代替 for 由于几个原因。如:
map, filter, transform_values
for
collection.filter(&:empty?).map(&:size)
我认为这是你最接近你想要的
for k, v in hash do hash[k] = v * v end
hash.each{ |k, v| hash[k] = v * v }