1 Mayıs 2009, Cuma
Ruby: bir şeyle, bir karma her bir değeri değiştirmek gibi #diziler için topluyorsun?
Değeri ile karma her bir değeri değiştirmek istiyorum.some_method.
Basit bir hash örneğin {"a" => "b", "c" => "d"}
her değer .upcase
d {"a" => "B", "c" => "D"}
gibi görünüyor.
#collect
#map
denedim ama hep diziler geri almak. Orada 'zarif' bu ne böyle? bir
GÜNCELLEME: Lanet olsun, unuttum: örneği karma değiştirilmemelidir. değişken Değiştirilmiş değerleri ile yeni bir karma ihtiyacım var, ama bu değişken tanımlamanın ve üzerinde karma dolum döngü sonra tercih ederim. new_hash = hash.magic {...}
gibi bir şey
CEVAP
1 Mayıs 2009, Cuma
my_hash.each { |k, v| my_hash[k] = v.upcase }
ya da, eğer bunu tercih ediyorsanız olmayan yıkıcı ve dönüş yeni karma my_hash
değiştirmek yerine:
a_new_hash = my_hash.inject({}) { |h, (k, v)| h[k] = v.upcase; h }
Bu son sürüm anahtarları da dönüştürmek olabilir yararı vardır.
Bunu Paylaş:
Nasıl sayı değeri tarafından Ruby bir ...
Diziler ve Karma için IRB baskı yapı y...
Nasıl Karma bir anahtarı kaldırın ve R...
Java: PHP gibi diziler için'in ka...
Nasıl ruby karma bir nesneyi JSON dönü...