您好我有一个元组(数组)列表,我想找到与元组的第一个对象中的ID匹配的元组。举个例子,这是数据的样子
[[object1, stat1],[object2, stat2], etc]
我想要做的是detect
一个对象ID,然后获取统计信息。最好的方法是什么?
答案 0 :(得分:1)
您可以使用ruby select:http://www.ruby-doc.org/core-2.1.1/Enumerable.html#method-i-select
执行此类操作a = [["object1", "stat1"],["object2", "stat2"]]
a.select { |elem| elem.include?("object1") }
答案 1 :(得分:1)
我建议您转换数组
arr = [["object1", "stat1"],["object2", "stat2"],["object3", "stat3"]]
到哈希:
hash = Hash[arr]
#=> {"object1"=>"stat1", "object2"=>"stat2", "object3"=>"stat3"}
或者,对于Ruby v2.0 +
hash = arr.to_h
#=> {"object1"=>"stat1", "object2"=>"stat2", "object3"=>"stat3"}
以便您可以直接检索值:
hash["object2"] #=> "stat2"
答案 2 :(得分:0)
找你说?然后如何使用Enumerable#find
?
a = [["object1", "stat1"],["object2", "stat2"],["object3", "stat3"]]
id = a[0][0].object_id
stat = a.find { |e| e[0].object_id == id }[1]