首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于第二个值寻找内部数组的第一个值

基于第二个值寻找内部数组的第一个值
EN

Stack Overflow用户
提问于 2015-06-01 23:58:50
回答 3查看 51关注 0票数 0

我有过

代码语言:javascript
复制
@array = [
  ["Single - Tuesday - $13/meal", 1],
  ["Trifecta - Mon, Wed, Fri - $12/meal", 3],
  ["Quinary - Every weekday - $11/meal", 5]
] 

如果我有内部数组135的第二个值,那么提取第一个值的最简单方法是什么?也就是说,

代码语言:javascript
复制
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"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-02 00:03:54

您可以使用发现方法:

代码语言:javascript
复制
@array.find{|sub_array| sub_array[1] == <your value here>}.try(:first)
票数 1
EN

Stack Overflow用户

发布于 2015-06-02 00:21:32

代码语言:javascript
复制
@array.rassoc(1).first
# => "Single - Tuesday - $13/meal"
票数 4
EN

Stack Overflow用户

发布于 2015-06-02 00:10:08

第二个值是唯一的吗?为什么不是哈希呢?

代码语言:javascript
复制
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只在值是唯一的情况下才能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30585246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档