Ruby изменяет значение хеша в массиве, используя gsub - PullRequest
0 голосов
/ 29 марта 2012

изменить хеши в массиве

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

Я хочу изменить хэш qty2 с помощью gsub, имя массива - details2

, когда я делаю это:

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

Я получаю все измененные значения.

Hash qty2 => «1 en su sucursal» необходимо изменить на qty2 => «1», поэтому используйте .gsub (/ [^ \ d] /, '') это можно сделать, но как мне изменить значение хэша !?учитывая массив хэшей.

пробовал это:

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

1 Ответ

2 голосов
/ 29 марта 2012

Если вы пытаетесь обновить элементы на месте, тогда вам не нужно collect.Есть более простой способ.Попробуйте это:

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

Это должно заменить ваши строки на месте.

...