从数组中的数组中提取值

时间:2015-06-26 20:04:57

标签: arrays ruby

我有一个像这样的数组

records =
[
 ["a","1"],
 ["b","2"],
 ["c","3"]
]

我想拉3号,因为我知道我正在寻找" c"的价值。

我试过这个但没有运气

search_for = 'c'

test = records.select{ |x| x=search_for}

我回到整个阵列

6 个答案:

答案 0 :(得分:6)

您正在寻找Array#assoc:

records.assoc(search_for).last

答案 1 :(得分:2)

您可以将数组转换为哈希,只需得到如下值:

search_for = 'c'
test = Hash[records][search_for]   #=> "3"

您也可以考虑使用.key?检查密钥是否存在。

答案 2 :(得分:2)

不一定是最干净或最惯用的,但这是另一种方式:

records.find { |x, y| break(y) if x == "c" }

换句话说,给定一对x, yfind数组,其中第一对x == "c"并返回y的值。

答案 3 :(得分:1)

 .panel {
    border-radius: 0px !important;
    background-color: #4D8FCB;
    color: white;
    margin-left: 25px;
    margin-right: 25px;
    padding: 10px 0;
    text-align: center;
}
.sa-h2, .sa-h6 {
    display: block;
}
.sa-h2 {
    font-size: 28px;
}
.sa-h6 {
    font-size: 10px;
}

答案 4 :(得分:0)

records.find { |f,_| f == 'c' }.last #=> 3

答案 5 :(得分:-1)

您可以使用Array #include?(value):

示例:

a = [1,2,3,4,5]
a.include?(3)   # => true
a.include?(9)   # => false