(TL;DR:hash1.merge(hash2))
正如大家所说,您可以使用合并方法来解决您的问题。但是,使用合并方法存在一些问题。这就是原因。
person1 = {"name" => "MarkZuckerberg", "company_name" => "Facebook", "job" => "CEO"}
person2 = {"name" => "BillGates", "company_name" => "Microsoft", "position" => "Chairman"}
看一下name和company_name这两个字段。这里的 name 和 company_name 在两个哈希中都是相同的(我的意思是键)。下一份工作和职位有不同的键。
当您尝试合并两个哈希 person1 和 person2 如果 person1 和 person2 键相同?那么 person2 键值将覆盖 peron1 键值。这里第二个哈希将覆盖第一个哈希字段,因为两者是相同的。这里名称和公司名称相同。查看结果。
people = person1.merge(person2)
Output: {"name"=>"BillGates", "company_name"=>"Microsoft",
"job"=>"CEO", "position"=>"Chairman"}
但是,如果您不希望第二个哈希覆盖第一个哈希。你可以这样做
people = person1.merge(person2) {|key, old, new| old}
Output: {"name"=>"MarkZuckerberg", "company_name"=>"Facebook",
"job"=>"CEO", "position"=>"Chairman"}
这只是使用 merge() 时的一个快速说明