0Pricing
Ruby Academy · Урок

Итерация по хешу

each, map, select

«Итерация по хешу» — бесплатный урок Ruby Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.

Перебор с помощью each

Метод each посещает каждую пару. Блок получает ключ и значение.

scores = { math: 90, art: 80 }
scores.each do |subject, score|
  puts "#{subject}: #{score}"
end

each_pair

each_pair — это псевдоним each для хешей. Используйте тот вариант, который лучше читается.

h = { a: 1, b: 2 }
h.each_pair { |k, v| puts "#{k}=#{v}" }

Перебор только ключей

each_key перебирает ключи, когда значения не нужны.

h = { name: "Ada", age: 36 }
h.each_key { |k| puts k }

Перебор только значений

each_value напрямую перебирает значения.

h = { a: 10, b: 20 }
total = 0
h.each_value { |v| total += v }
puts total

Преобразование с помощью map

map для хеша возвращает массив. Каждая пара передаётся как ключ и значение.

prices = { pen: 2, book: 5 }
labels = prices.map { |item, p| "#{item}: $#{p}" }
puts labels.inspect

transform_values

transform_values возвращает новый хеш, в котором изменены значения, а ключи сохранены.

prices = { pen: 2, book: 5 }
doubled = prices.transform_values { |p| p * 2 }
puts doubled

transform_keys

transform_keys изменяет ключи, сохраняя значения. Это удобно для преобразования строк в символы.

h = { "a" => 1, "b" => 2 }
puts h.transform_keys(&:to_sym)

Фильтрация с помощью select

select (псевдоним filter) сохраняет пары, для которых блок возвращает true, и возвращает новый хеш.

scores = { a: 90, b: 50, c: 70 }
passing = scores.select { |k, v| v >= 70 }
puts passing

Отклонение пар

reject действует противоположно select. Он удаляет пары, для которых блок возвращает true.

scores = { a: 90, b: 50 }
puts scores.reject { |k, v| v < 60 }

Поиск и подсчёт

find возвращает первую подходящую пару в виде массива. count с блоком подсчитывает совпадения.

h = { a: 1, b: 2, c: 3 }
puts h.find { |k, v| v == 2 }.inspect
puts h.count { |k, v| v.odd? }

Суммирование значений

Объедините values с sum, чтобы получить итоговую сумму, или используйте each_with_object для пользовательской агрегации.

cart = { apple: 3, pear: 5 }
puts cart.values.sum

Быстрая проверка

Проверьте свои знания о переборе хешей.

Итоги

Теперь Вы умеете перебирать хеши:

  • each, each_key, each_value
  • map, transform_values, transform_keys
  • select/reject для фильтрации
  • find, count и суммирование значений

Далее: значения по умолчанию и объединение хешей.

h = { a: 1, b: 2, c: 3 }
puts h.select { |k, v| v.odd? }

Часто задаваемые вопросы

Урок «Итерация по хешу» бесплатный?

Да — полный текст урока «Итерация по хешу» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.

Чему я научусь в уроке «Итерация по хешу»?

each, map, select Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ruby Academy?

Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Итерация по хешу»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ruby Academy?

Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Символы и строки
  2. Создание и чтение хешей
  3. Итерация по хешу
  4. Значения по умолчанию и объединение
← Назад к Ruby Academy