【发布时间】:2022-01-10 14:08:24
【问题描述】:
first_response = [
{"xId" => "123", "yId" => "321"},
{"xId" => "x", "yId" => "y" }
]
first_response.each do |resp|
x_id = resp['xId']
y_id = resp['yId']
puts x_id.to_s
puts y_id.to_s
end
这给了我输出
123
321
x
y
我要创建的输出哈希是
{123=>{321}, x=>{y}}
第一个服务:我有一个哈希数组,它有两个不同的 id 示例:(x_id 和 y_id)(响应中会有多个这样的对)
我想创建一个哈希值,它应该包含我们从第一个服务中获得的匹配的 x_id 和 y_ids 对,其中 x_id's 作为所有对的键。
【问题讨论】:
-
您有输入和预期输出的示例,以及您尝试过的内容吗?
-
Hash[[[:a, 1], [:b, 2], [:c, 3]]]给=> {:a=>1, :b=>2, :c=>3} -
{ "first_service": [ { "x": "string", "y": "string", "other": { "a": "string", "b": "string ", "c": "string" }, "other-2": { "l": "CONFIRMED", "m": "2021-12-03T15:10:21.330Z", "n": "2021- 12-03T15:10:21.330Z" } } ] } 我想将此分组为 hash_ = { "x": { 'y': "y", } }
-
我可以遍历第一个服务,并通过一个接一个地遍历第一个服务(分别为 x 和 y),在他们自己的数组中分别获取 x 和 y,但无法分组他们。 # x = [].tap 做 |ids| # first.each 做 |element| # x = element['x'] # ids.push(x) 除非 x.nil? || ids.include?(x) # end # end
标签: ruby-on-rails ruby hash each