Ruby 在包含哈希的数组中创建哈希
让我先说我刚刚开始学习ruby 我有任何由散列组成的数组,以及相互嵌套的数组。看起来是这样的:Ruby 在包含哈希的数组中创建哈希,ruby,hash,Ruby,Hash,让我先说我刚刚开始学习ruby 我有任何由散列组成的数组,以及相互嵌套的数组。看起来是这样的: people = [ { "John Doe" => { "phone" => "555-555-555", "company" => "Company name", "children" => [ "John", "Jane", "Annamarie" ] }
people =
[
{
"John Doe" => {
"phone" => "555-555-555",
"company" => "Company name",
"children" => [
"John",
"Jane",
"Annamarie"
]
},
"Jane Smith" => {
"phone" => "555-555-5555",
"company" => "company name",
"children" => [
"Steven"
]
}
}
]
people =
[
{
"John Doe" => {
"phone" => "555-555-555",
"company" => "Company name",
"children" => [
"John",
"Jane",
"Annamarie"
],
"spouse" => "Jane Doe"
},
"Jane Smith" => {
"phone" => "555-555-5555",
"company" => "company name",
"children" => [
"Steven"
],
"spouse" => "John Smith"
}
}
]
我如何添加一个新的散列,其中人名作为键,新的散列是值?例如,我想添加“配偶”,因此哈希如下所示:
people =
[
{
"John Doe" => {
"phone" => "555-555-555",
"company" => "Company name",
"children" => [
"John",
"Jane",
"Annamarie"
]
},
"Jane Smith" => {
"phone" => "555-555-5555",
"company" => "company name",
"children" => [
"Steven"
]
}
}
]
people =
[
{
"John Doe" => {
"phone" => "555-555-555",
"company" => "Company name",
"children" => [
"John",
"Jane",
"Annamarie"
],
"spouse" => "Jane Doe"
},
"Jane Smith" => {
"phone" => "555-555-5555",
"company" => "company name",
"children" => [
"Steven"
],
"spouse" => "John Smith"
}
}
]
您可以使用
select
获取以“John Doe”为键的哈希
search_user = "John Doe"
person = people.select{|p| p.has_key?(search_user)}.first
person[search_user]['spouse'] = "Jane Doe" if person
最后一行的
if person
的原因是为了处理未找到“John Doe”的情况。您可以使用选择
获取以“John Doe”为键的哈希值
search_user = "John Doe"
person = people.select{|p| p.has_key?(search_user)}.first
person[search_user]['spouse'] = "Jane Doe" if person
最后一行中的
if person
的原因是为了处理没有找到“John Doe”的情况。为什么要在person=>其_数据的哈希周围使用最顶端的数组?@Vasfed这是一个练习的一部分,我是这样做的。最初的问题是在人员级别创建散列,但我想知道如何更深入一层,这是我无法做到的。长话短说,这是给我的,纯粹是假设性的。为什么你需要person=>他们的_数据的哈希周围的最顶端数组?@Vasfed这是一个练习的一部分,是这样给我的。最初的问题是在人员级别创建散列,但我想知道如何更深入一层,这是我无法做到的。长话短说,这是给我的,纯粹是假设。嗨,史蒂夫,谢谢你的回复。然而,我试图在散列中创建一个新的散列,其中johndoe是密钥。或者我误解了你的代码?我的代码在散列“John Doe”中有一个新的散列键/数据。。。我的代码的结果将完全匹配您的“我希望它看起来像这样”代码。如果您对所需内容的描述/示例有误,请告知我。非常感谢您的回复。我还是个新手。感谢您抽出时间回答这个问题。嗨,史蒂夫,谢谢您的回复。然而,我试图在散列中创建一个新的散列,其中johndoe是密钥。或者我误解了你的代码?我的代码在散列“John Doe”中有一个新的散列键/数据。。。我的代码的结果将完全匹配您的“我希望它看起来像这样”代码。如果您对所需内容的描述/示例有误,请告知我。非常感谢您的回复。我还是个新手。我感谢你花时间回答这个问题。