gpt4 book ai didi

arrays - Ruby:通过将数组映射到数组来构建哈希

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

我有一个包含 31 个项目的 dates 数组(为清楚起见,此处缩短)

Tuesday 8, November
Wednesday 9, November
#etc.

和一个包含 31 个项目的 movies 哈希,每个项目包含电影名称和放映时间(为清楚起见,此处缩短)

{:movie=>"The Neon Demon", :time=>"4:15 PM"}
{:movie=>"Breaking a Monster", :time=>"6:45 PM"}
{:movie=>"The Citizen", :time=>"9:00 PM"}

我正在尝试为具有这种结构的 json 输出构建哈希

[
{
"Tuesday 8, November": {
"movies": [
{
"movie": "The Neon Demon",
"time": "4:15 PM"
},
{
"movie": "Breaking a Monster",
"time": "6:45 PM"
},
{
"movie": "The Citizen",
"time": "9:00 PM"
}
]
},
{
"Wednesday 9, November": {
"movies": [
{
"movie": "The First Monday in May",
"time": "4:15 PM"
},
{
"movie": "The Neon Demon",
"time": "6:30 PM"
},
{
"movie": "Breaking a Monster",
"time": "9:00 PM"
}
]
}, #etc
}
]

我现在正在用

Output = []
Output << { dates => { movies: movies }}
puts JSON.pretty_generate Output

但它没有正确排列元素,我想不出最好的方法。任何人都可以告诉我如何正确地做这件事吗?谢谢

最佳答案

您真的只是一次调用 zip 的电话远离解决方案:

movies = [
{:movie=>"The Neon Demon", :time=>"4:15 PM"},
{:movie=>"Breaking a Monster", :time=>"6:45 PM"},
{:movie=>"The Citizen", :time=>"9:00 PM"}
]

dates = [
'Tuesday 8, November',
'Wednesday 9, November',
'Thursday 10, November'
]

dates.zip(movies).to_h
# => {"Tuesday 8, November"=>{:movie=>"The Neon Demon", :time=>"4:15 PM"}, ... }

请注意,从编程的角度来看,这样的日期格式非常烦人,因为它们无法排序并且是特定于语言的。 ISO 日期格式,如 2016-11-08 在实践中效果更好。

关于arrays - Ruby:通过将数组映射到数组来构建哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477594/

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