我有一个mysql查询,它返回这种类型的数据:

{"id"=>1, "serviceCode"=>"1D00", "price"=>9.19}
{"id"=>2, "serviceCode"=>"1D01", "price"=>9.65}


我需要根据id的匹配返回serviceCode字段。

即我需要这样的方法

def findID(serviceCode)
    find the row that has the service code and return the ID
end


我当时正在考虑使用serviceCodes.each do |row|方法并遍历并从本质上讲

if row == serviceCode
  return row['id']
end


有没有更快/更简单的方法?

最佳答案

您可以使用方法Enumerable#find

service_codes = [
  {"id"=>1, "serviceCode"=>"1D00", "price"=>9.19},
  {"id"=>2, "serviceCode"=>"1D01", "price"=>9.65}
]

service_codes.find { |row| row['serviceCode'] == '1D00' }
# => {"id"=>1, "serviceCode"=>"1D00", "price"=>9.19}

关于mysql - 在 ruby 数组中查找行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25747685/

10-09 20:21