在Ruby中只使用一个键在哈希中查找键名的有效方法?
我有一个散列数组,每个散列只包含一个键/值对。是否有更有效的方法访问密钥?这是我丑陋的解决方案在Ruby中只使用一个键在哈希中查找键名的有效方法?,ruby,hash,key,Ruby,Hash,Key,我有一个散列数组,每个散列只包含一个键/值对。是否有更有效的方法访问密钥?这是我丑陋的解决方案 array_of_hashes = [ {:some => "stuff"}, {:other => "stuff"} ] array_of_hashes.each do |hash| hash.each do |key, value| puts key end 在我看来,一定有某种简单的表达方式 array_of_hashes.each do |hash|
array_of_hashes = [
{:some => "stuff"},
{:other => "stuff"}
]
array_of_hashes.each do |hash|
hash.each do |key, value|
puts key
end
在我看来,一定有某种简单的表达方式
array_of_hashes.each do |hash|
puts hash.key # where this would simply access the key
end
或者可能
array_of_hashes.each do |hash|
puts hash.keys[0]
end
但这仍然感觉有点马虎 我不确定您追求的是什么样的效率,但这至少是非常简短的:
hashes = [
{ a: 'a'},
{ b: 'b'},
{ c: 'c'}
]
hashes.flat_map(&:keys)
# => [:a, :b, :c]
我不确定你追求的是什么样的效率,但这至少是非常短暂的:
hashes = [
{ a: 'a'},
{ b: 'b'},
{ c: 'c'}
]
hashes.flat_map(&:keys)
# => [:a, :b, :c]
array\u of_hashes.each{h | put h.first.first}
谢谢,我想这就是我用我的第二个选项得到的:array\u of_hashes.each{h | put h.first}
谢谢,我想这就是我用我的第二个选项得到的:这意味着你必须创建数组,然后put
it,但这通常比放置每个元素(而不是创建数组)更好,因为以后可能需要数组<代码>放置
调试每个元素都可以,当然,在这种情况下@mudasobwa的建议就可以了。谢谢。为了澄清这一点,我正在寻找一种方法,该方法对于只有一个键值对的散列,在语法上更清晰,而不是假设多个元素的方法。它甚至可能不存在,因为散列通常有不止一个元素,但因为我是新手,我想我应该检查一下。谢谢你的帮助!这意味着您必须创建数组,然后将其放入中,但这通常比将每个元素放入中(而不是创建数组)更好,因为您以后可能需要数组<代码>放置
调试每个元素都可以,当然,在这种情况下@mudasobwa的建议就可以了。谢谢。为了澄清这一点,我正在寻找一种方法,该方法对于只有一个键值对的散列,在语法上更清晰,而不是假设多个元素的方法。它甚至可能不存在,因为散列通常有不止一个元素,但因为我是新手,我想我应该检查一下。谢谢你的帮助!