如何统计数组中特定元素的出现次数?是否有类似array.include?的方法
统计Ruby数组中元素出现次数的方法
当然有啦!在Ruby里,你可以用几种简洁的方法来实现数组元素出现次数的统计,用法和你提到的array.include?2一样直观:
count方法(最推荐):这是最直接满足你需求的方法,只需要把要统计的元素作为参数传入,就能得到它的出现次数:array = [2, 2, 5, 6, 3, 8] array.count(2) # 输出结果:2这个方法不仅简单,而且性能也不错,完全符合你想要的类似
include?的使用体验。tally方法(适合多元素统计):如果你需要一次性统计数组中所有元素的出现次数,Ruby 2.7及以上版本提供了tally方法,它会返回一个哈希表,键是数组元素,值是对应出现次数:array.tally # 输出结果:{2=>2, 5=>1, 6=>1, 3=>1, 8=>1} array.tally[2] # 通过键获取2的出现次数,结果为2这个方法适合需要批量统计的场景,一次调用就能拿到所有元素的计数。
兼容旧版本的手动实现(可选):如果你的Ruby版本低于2.7,没有
tally方法,也可以用each_with_object手动实现统计:count_hash = array.each_with_object(Hash.new(0)) { |num, hash| hash[num] += 1 } count_hash[2] # 结果同样是2
内容的提问来源于stack exchange,提问作者dinosaurjohnson
相关产品推荐
相关产品推荐

