gpt4 book ai didi

ruby-on-rails - 根据另一哈希数组的键值更新一个哈希数组

转载 作者:数据小太阳 更新时间:2023-10-29 07:51:37 24 4
gpt4 key购买 nike

我有以下两个哈希数组。我正在尝试从 doctor 数组哈希中删除其 doctor_patient_id 不存在于 patient_and_doctor 哈希数组的 doctor_patient_id 数组中的记录。

doctor = [
{ :doctor_patient_id=>"abc",
:doctor_id=>"d1"
},
{ :doctor_patient_id=>"def",
:doctor_id=>"d2"
},
{ :doctor_patient_id=>"ghi",
:doctor_id=>"d3"
}
]

patient_and_doctor = [
{ :patient_id=>"11e8f37477ab7028a66b210b9699def9",
:doctor_patient_id=>[ "def", "zkj", "cps" ]
},
{ :patient_id=>"11e8f37481fabfe68630f5da2e22dceb",
:doctor_patient_id=>[ "uio", "ghi", "jkk" ]
}
]

预期的输出是:

doctor = [
{ :doctor_patient_id=>"def",
:doctor_id=>”d2”
},
{ :doctor_patient_id=>"ghi",
:doctor_id=>”d3”
}
]

我尝试做类似下面的事情,但没有成功,

patient_and_doctor.each do |dp|
data = doctor.map {|d| d[:doctor_patient_id].include?
dp[:doctor_patient_id] }
end

我怎样才能做到这一点?

最佳答案

valid_ids = patient_and_doctor.flat_map { |h| h[:doctor_patient_id] }
# => ["def", "zkj", "cps", "uio", "ghi", "jkk"]

doctor.select { |h| valid_ids.include? h[:doctor_patient_id] }
# => [{:doctor_patient_id=>"def", :doctor_id=>"d2"},
# {:doctor_patient_id=>"ghi", :doctor_id=>"d3"}]

如果您希望改变您的 doctor 数组而不是返回一个新数组,请使用 select! 而不是 select

关于ruby-on-rails - 根据另一哈希数组的键值更新一个哈希数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53539376/

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