Ruby哈希解析求助:获取"HTTP get traffic"对应的Id值
Ruby哈希解析:获取指定TextId对应的Id值
要从给定的Ruby哈希中获取TextId为"HTTP get traffic"对应的Id值,可以用以下两种方法实现:
方法一:使用flat_map + find(简洁写法)
target_text_id = "HTTP get traffic" # 展开所有测试项并筛选目标条目 target_test = gettest["Groups"] .flat_map { |group| group["Tests"] } .find { |test| test["Description"]["TextId"] == target_text_id } # 提取Id值,未找到则返回nil id_value = target_test ? target_test["Id"] : nil puts id_value # 输出:9
代码说明
flat_map将每个分组下的Tests数组展开为一维数组,避免嵌套遍历的繁琐find遍历所有测试项,匹配到目标TextId后返回对应的测试条目- 最后通过三元运算符处理未找到目标的情况,避免报错
方法二:嵌套遍历(直观写法)
如果更习惯逐层级遍历,也可以用嵌套循环实现:
target_text_id = "HTTP get traffic" id_value = nil gettest["Groups"].each do |group| group["Tests"].each do |test| if test["Description"]["TextId"] == target_text_id id_value = test["Id"] break # 找到目标后终止内层循环 end end break if id_value # 已找到目标,终止外层循环 end puts id_value # 输出:9
代码说明
- 外层循环遍历所有分组,内层循环遍历每个分组下的测试项
- 匹配到目标TextId后立即赋值并终止循环,提升效率
内容的提问来源于stack exchange,提问作者Asar
相关产品推荐
相关产品推荐

