我有一个Ruby哈希,看起来像这样:
h = {"side1"=>["green", "Green"], "side2"=>["verde", "Verde"]}
Run Code Online (Sandbox Code Playgroud)
如何获取散列中特定键的第一个(或最后一个)项?
实际上,你的问题中的示例伪代码是正确的.
为你的哈希
h = {
"side1" => ["green", "Green"],
"side2" => ["verde", "Verde"]
}
Run Code Online (Sandbox Code Playgroud)
键是'side1'
和'side2'
(它们的值为hashrocket)
所以,h['side2'].first
说对于key的值'side2'
,获取值中的第一个元素["verde", "Verde"]
,即数组. h['side2'][0]
也会有用.别名first
是一种方便的方法.
要获取数组的最后一个元素而不必知道它有多大,请使用负索引.例如h['side2'][-1]
,这相当于h['side2'][1]
在这种情况下.
请注意,散列中的键特别关于它是字符串还是符号.这h[:side2]
将返回零,因为密钥尚未设置.Rails有一个类HashWithIndifferentAccess
将符号和字符串视为等效键.
编辑
我应该提到我测试了我的答案irb
.irb
是一种测试你的想法的好方法,这些想法可能会起作用,也可能起作用.在终端提示符下,键入irb
,输入并使用ruby进行播放.
小智 6
我遇到了类似的情况,我从哈希中任意想要一些测试代码的"第一"条目.这不是这个问题的确切含义,但它出现在我跑的搜索中,因此可能会对其他人也这样做.
当然"第一项"在散列中是任意的,但是keys方法将返回按一些魔法排序的所有键的列表.如果您喜欢该排序顺序,那么您可以使用"第一"方法
h[h.keys.first]
Run Code Online (Sandbox Code Playgroud)
任何哈希都有你可以简单的键和值
hash.values.first
hash.values.last
hash.keys.first
hash.keys.last
Run Code Online (Sandbox Code Playgroud)
因此,您将拥有所需的值数组,以便在第一个或最后一个
归档时间: |
|
查看次数: |
36878 次 |
最近记录: |