如何在Ruby中从JSON数据提取status字段的唯一值?
Ruby获取JSON数组中status字段的唯一值
Ruby里有多种简洁的方式实现你要的需求,以下是常用的两种:
方法一:提取字段后去重
先从数组的每个元素中提取status字段,再用uniq方法去除重复值:
# 先确保data是解析后的Ruby数组(若为JSON字符串,可先用JSON.parse转换) unique_statuses = data.map { |item| item["status"] }.uniq
执行后会得到 ["Removed", "Registered", "Objected"],如果需要和示例中的顺序一致,可追加.sort方法进行排序。
方法二:分组后取键
类似你提到的JavaScript中_.countBy的思路,Ruby可以用group_by方法按status字段分组,分组生成的哈希的键就是所有唯一的status值:
unique_statuses = data.group_by { |item| item["status"] }.keys
这种方式的结果顺序会和status值在原数组中首次出现的顺序保持一致。
内容的提问来源于stack exchange,提问作者Labani Das
相关产品推荐
相关产品推荐

