Я вытаскиваю хэш из mashable.com, и мне нужно подсчитать экземпляры имен авторов (автор - это ключ, а значение - имя автора). mashable's apiПодсчет количества повторений значения в хэшировании
{
new: [
{
other_keys: 'other_values'...
author: 'Author's Name'
}
]
Я хочу итерацию по хэш и вытаскивать имя автора, а затем посчитать количество раз она повторяется в весь список от Mashable апи.
Вот что у меня есть; он превращает хэш в массив, итерации по нему, добавляя счет к каждому имени автора в качестве ключа, а затем добавляет количество повторов в качестве значения.
Это было бы здорово, но я не могу вернуть его в свой оригинальный хэш из mashable, чтобы добавить все другие элементы хэша, которые я хочу отобразить.
all_authors = []
all_stories.each do |story|
authors = story['author']
all_authors << authors
end
counts = Hash.new(0)
all_authors.each do |name|
counts[name] += 1
end
counts.each do |key, val|
puts "#{key}: " "#{val}"
end
Это делает то, что он должен, но я стараюсь, чтобы положить его обратно в исходный хэш от Mashable:
all_stories.each do |com|
plorf = com['comments_count'].to_i
if plorf < 1
all_stories.each do |story|
puts "Title:\n"
puts story['title']
puts "URL:\n"
puts story['short_url']
puts "Total Shares:\n"
puts story['shares']['total']
end
end
end
Когда я бросаю код обратно в этой итерации, все это делает это итерация начального, и после каждой записи я получаю список всех авторов и количество написанных им историй, вместо того, чтобы перечислять каждого автора, связанного с другой информацией о каждой истории, и количеством написанных им историй.
Любая помощь очень ценится.
бы мне нужно ввести значение, которое я сравниваю для каждого ключа, который я хотел сравнить? –
@DavidJohnson Это ответ на ваш вопрос? –
Я отвечаю –