我有
@array = [
["Single - Tuesday - $13/meal", 1],
["Trifecta - Mon, Wed, Fri - $12/meal", 3],
["Quinary - Every weekday - $11/meal", 5]
]
如果我有内部数组1
,3
或5
的第二个值,那么提取第一个值的最简单方法是什么?即,
some_method_or_whatever(1) # => "Single - Tuesday - $13/meal"
some_method_or_whatever(3) # => "Trifecta - Mon, Wed, Fri - $12/meal"
some_method_or_whatever(5) # => "Quinary - Every weekday - $11/meal"
答案 0 :(得分:4)
@array.rassoc(1).first
# => "Single - Tuesday - $13/meal"
答案 1 :(得分:1)
您可以使用find方法:
@array.find{|sub_array| sub_array[1] == <your value here>}.try(:first)
答案 2 :(得分:0)
第二个值是唯一的吗?为什么不是哈希?
hash =
{1 => "Single - Tuesday - $13/meal",
3 => "Trifecta - Mon, Wed, Fri - $12/meal",
5 => "Quinary - Every weekday - $11/meal"}
hash[1], hash[3] etc
但如果它必须是您所要求的,那么数字是否遵循相同的模式和位置?即1,3,5,7,9等?如果是这样@array.flatten[value]
将起作用。
否则为@array[@array.flatten.find_index(5)-1]
,但obv仅在值唯一时才有效。