将长度为 x 的数组添加到键中的值:使用 Ruby 的值散列

Add an Array of length x to value in key : value hash using Ruby

这是一个散列

personal_details = {
  name: name,
  dob: dob,
  age: age,
  height: height
}

这是一个数组

puts "What are the name of some of your relatives? (eg. Bob, James, Harry etc)"
relatives = gets().chomp.split(",")

假设亲戚的输入是 "Bob, James, Harry"。

我希望散列看起来像这样:

personal_details = {
  name: name,
  dob: dob,
  age: age,
  height: height
  relatives: [
         {name: Bob},
         {name: James},
         {name: Harry}
  ]
}

散列中的数组根据用户输入进行更新。

首先将 relatives 初始化为数组:

personal_details = {
  name: name,
  dob: dob,
  age: age,
  height: height,
  relatives: []
}

然后对于每个亲戚,推送到数组:

relatives = gets().chomp.split(",")
relatives.each do |relative|
  personal_details.relatives.push(name: relative)
end

如果我按预期解释问题,这应该有效:

personal_details[:relatives] = relatives.map{|r| {name: r}}