我有一个像这样的数组
records =
[
["a","1"],
["b","2"],
["c","3"]
]
我想拉3号,因为我知道我正在寻找" c"的价值。
我试过这个但没有运气
search_for = 'c'
test = records.select{ |x| x=search_for}
我回到整个阵列
答案 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, y
,find
数组,其中第一对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