gpt4 book ai didi

ruby-on-rails - 合并两个都具有键值对的数组 (Ruby)

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:15 25 4
gpt4 key购买 nike

我想知道如何在 Ruby 中将这两个数组合并为一个干净的数组
两个数组共享一个相似的键值对。我正在尝试合并来自这两个单独数组的信息,这些数组具有同一个人的信息。一个数组有他的名字。另一个数组有他的工作和年龄。两个数组都有一个与同一个人匹配的 ID。
我正在尝试做的一个例子

array1 = [ {:id => 1, :name => "Bob"}, {:id => 2, :name => "Tim"}]
array2 = [ {:id => 1, :job => "firefighter", :age => 25}, { :id => 2, :job => "accountant", :age => 30} ]


new_array = [ {:id=> 1, name => "Bob", :job => "firefighter", :age => 25}, { :id => 2, :name => "Tim", :job => "accountant", :age => 30} ]

最佳答案

你可以这样做:

new_array = array1.each_with_index.map { |x, i| x.merge array2[i] }
# => [{:id=>1, :name=>"Bob", :job=>"firefighter", :age=>25}, {:id=>2, :name=>"Tim", :job=>"accountant", :age=>30}]

如果您想要一个不依赖于数组顺序的解决方案,而是使用 :id 来匹配哈希:

array1.map { |x| x.merge (array2.find { |h| h[:id] == x[:id] } || {}) }

关于ruby-on-rails - 合并两个都具有键值对的数组 (Ruby),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com