问题描述
例如有如下数据:
a,b,c,a,c,d
得到不同数据的值:a,b,c,d得到各个元素出现的个数:a => 2,b => 1,c => 2,d => 1※数据出现不固定,可能有e,f,g等。
查了ruby文档的array和hash,没想出怎么实现。
问题解答
回答1:得到不同数据的值:
%w(a b c a c d).uniq
得到各个元素出现的个数:
count_hash = {}%w(a b c a c d).each do |item| key = item.to_sym if count = count_hash[key] count_hash[key] = count + 1 else count_hash[key] = 1 endend回答2:
str=’a,b,c,a,c,d’counter = Hash.new(0)str.split(’,’).each { |val| counter[val]+=1 }puts counter