Ruby - 在散列的特定字段/键中查找数据

时间:2014-09-25 18:19:34

标签: ruby-on-rails ruby git

我使用github api收集了我的github repo的所有标签列表。假设我将它存储在名为'released_tags'的变量中。

例如:Data in 'released_tags' would be something similar to data displayed in https://api.github.com/repos/fastly/epoch/tags

我有一个数字0.3,我希望在这个数据的名称字段的值中找到它,并希望最后/最新包含/匹配的名称。

预期结果:该数据为0.3.5,0.3.4,0.3.3,0.3.2,0.3.1和0.3.0,含0.3。我正在尝试一种逻辑/简单的方法,通过名称字段为0.3进行搜索,我得到最新的,即在这种情况下逻辑的输出应该是0.3.5,因为这是最新的/最高的数字。如果名称字段只有0.3或0.3.0,则输出应为0.3或0.3.0

编辑:我能够找到解决方案,但是有没有简单/简单的方法呢?这是我的解决方案:

 tag_names = Array.new

  released_tags.each do |tag|
    if tag['name'].include? '0.3'
      tag_names << tag['name']
    end
  end

 p tag_names.first

1 个答案:

答案 0 :(得分:0)

鉴于您始终需要匹配的第一个结果,您可以使用find

released_tags.find { |tag| tag['name'] =~ /^0\.3/ }

或者,如果你不喜欢正则表达式:

released_tags.find { |tag| tag['name'].start_with?("0.3") }