Ruby使用gsub修改数组中的哈希值

时间:2012-03-28 22:26:26

标签: ruby arrays hash gsub

修改数组中的哈希

{:sku=>"TP-PA211", :desc=>"description", :qty=>"", :qty2=>"1 en su sucursal", :price=>"30.02 D"}

我想用gsub修改散列qty2,数组的名称是details2

当我这样做时:

details2.collect {|item| item[:qty2].gsub(/[^\d]/, '') }

我获得了所有修改后的值。

哈希qty2 =>“1 en su sucursal”需要更改为qty2 =>“1”,所以使用.gsub(/ [^ \ d] /,'')可以完成,但是如何更改哈希的值!?考虑到它的一系列哈希。

尝试了这个:

details2{|item| item[:qty2] = item[:qty2].gsub(/[^\d]/, '') }

1 个答案:

答案 0 :(得分:2)

如果您尝试就地更新项目,则不需要collect。有一种更简单的方法。试试这个:

details2.each {|item| item[:qty2].gsub!(/[^\d]/, '') }

那应该就地替换你的字符串。