У нас есть богатая стандартная библиотека для работы с коллекциями в Ruby.Это очень полезно и охватывает самые необходимые случаи.У нас есть отличные методы Enumerable # map , Enumerable # filter , Enumerable # Reduction в ruby и многие другие.Пожалуйста, прочитайте документацию.
Общий способ - сгенерировать новый хеш:
new_hash = hash.each_with_object({}) { |(k, v), acc| acc[k] = v * v }
Для Ruby начиная с версии 2.4.0 вы можете использовать метод Hash#transform_values
:
hash.transform_values{ |value| value * value }
Мы предпочитаем использовать map, filter, transform_values
вместо for
по нескольким причинам.Например:
- сведение к минимуму мутации данных и побочных эффектов;
- способность связывать такие методы, как
collection.filter(&:empty?).map(&:size)