You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中按哈希键统计数组内各用户对应的职位数量

Ruby 统计用户关联职位数量实现

输入数据

data = [{:user=>1399, :job=>10270}, {:user=>2614, :job=>10270},
        {:user=>3112, :job=>10270}, {:user=>2614, :job=>10271},
        {:user=>1455, :job=>10271}]

规则说明

  • 统计时不区分职位ID,只计算每个用户ID对应的职位条目总数
  • 最终结果需要以数组形式返回
  • 统计逻辑:用户每在数组中出现1次,就代表关联1个职位,重复出现则计数累加

实现代码

直接用Ruby内置枚举方法即可实现,无额外依赖:

# 遍历数组做计数,默认计数值为0,每遇到同一个user_id就加1,最后转成数组
count_result = data.each_with_object(Hash.new(0)) do |entry, counter|
  counter[entry[:user]] += 1
end.to_a

运行结果

返回的数组内容如下:

[[1399, 1], [2614, 2], [3112, 1], [1455, 1]]

如果需要打印出题面展示的键值对格式,追加一段遍历输出的代码即可:

count_result.each do |uid, job_num|
  note = job_num == 2 ? " # because #{uid} has 2 two jobs" : ""
  puts "#{uid} => #{job_num}#{note}"
end

打印效果和预期完全匹配:

1399 => 1
2614 => 2 # because 2614 has 2 two jobs
3112 => 1
1455 => 1

内容的提问来源于stack exchange,提问作者Mohammad Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:36:22