我有过
@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"发布于 2015-06-02 00:03:54
您可以使用发现方法:
@array.find{|sub_array| sub_array[1] == <your value here>}.try(:first)发布于 2015-06-02 00:21:32
@array.rassoc(1).first
# => "Single - Tuesday - $13/meal"发布于 2015-06-02 00:10:08
第二个值是唯一的吗?为什么不是哈希呢?
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只在值是唯一的情况下才能工作。
https://stackoverflow.com/questions/30585246
复制相似问题