Ruby 在散列中隔离和显示特定元素
我目前在编写一个测试时遇到了问题,该测试解决了我的记录的Ruby 在散列中隔离和显示特定元素,ruby,Ruby,我目前在编写一个测试时遇到了问题,该测试解决了我的记录的资格设置问题。我很难从这个散列中取出一个特定元素 具体来说,我想通过在不同的函数中的其他地方进行更改来测试这一点,该函数更改特定玩家的最小年龄,因此我真正尝试测试的是资格设置。最小年龄。但我在测试中遇到了困难,无法将其分离出来 我的杂烩看起来像这样 { :name => "player1", :label => "redTeam_1_1",
资格设置问题。我很难从这个散列中取出一个特定元素
具体来说,我想通过在不同的函数中的其他地方进行更改来测试这一点,该函数更改特定玩家的最小年龄,因此我真正尝试测试的是资格设置。最小年龄。但我在测试中遇到了困难,无法将其分离出来
我的杂烩看起来像这样
{
:name => "player1",
:label => "redTeam_1_1",
:group => "adult",
:teamId => 7,
:eligibility_settings => {
"min_age" => 18,
"player_gender" => "female",
"union_players_only" => true
}
}
然而,当我尝试循环这个散列时,我在隔离这一个元素时遇到了困难
我试过类似的方法
team.get_players.first.map do |settings, value|
value.tap do |x, y|
y[3]
end
end
然而,这似乎是我一直在尝试的,我的方法并不是很有效
有人知道我可以用这个做什么吗?尽管@SergioTulentsev给出了正确的响应,但在将来,如果您要循环使用哈希,下面是一种迭代键并获取所需值的方法
hash = {
:name => "player1",
:label => "redTeam_1_1",
:group => "adult",
:teamId => 7,
:eligibility_settings => {
"min_age" => 18,
"player_gender" => "female",
"union_players_only" => true
}
}
hash.map do |settings, value|
p hash[:eligibility_settings]['min_age'] if settings == :eligibility_settings
end # output 18
呵呵?为什么要迭代?直接获取值即可<代码>散列[:资格设置]['min\u age']
(根据您所说的散列的外观)天哪,我觉得我想得太多了,您完全正确。非常感谢你!