【发布时间】:2019-05-22 06:12:48
【问题描述】:
我想使用四个值 type、name、year、value 创建一个嵌套哈希。即,第一个散列的键是type,值是另一个散列,键是name,然后那个值是另一个散列,键是year,值是value。
我正在迭代的对象数组如下所示:
elements = [
{
year: '2018',
items: [
{
name: 'name1',
value: 'value1',
type: 'type1',
},
{
name: 'name2',
value: 'value2',
type: 'type2',
},
]
},
{
year: '2019',
items: [
{
name: 'name3',
value: 'value3',
type: 'type2',
},
{
name: 'name4',
value: 'value4',
type: 'type1',
},
]
}
]
我正在使用这样的两个循环将所有值放在一起:
elements.each do |element|
year = element.year
element.items.each |item|
name = item.name
value = item.value
type = item.type
# TODO: create nested hash
end
end
预期的输出是这样的:
{
"type1" => {
"name1" => {
"2018" => "value1"
},
"name4" => {
"2019" => "value4"
}
},
"type2" => {
"name2" => {
"2018" => "value2"
},
"name3" => {
"2019" => "value3"
}
}
}
我尝试了一些方法,但似乎没有达到预期的效果。我该怎么做?
【问题讨论】:
-
能否添加您尝试过的解决方案
-
您的 JSON 格式错误。
-
@AlekseiMatiushkin 实际上它是一个对象数组,只是更正了它
标签: ruby-on-rails ruby