【发布时间】:2018-02-14 08:22:00
【问题描述】:
我有一个包含 10 个项目的列表——它是一个哈希数组。
[{ id: 1, name: 'one'}, { id: 2, name: 'two' } .. { id: 10, name: 'ten' }]
我还有随机数量的容器——在这种情况下,假设为 3。这些容器是带有数组值的散列。
{ one: [], two: [], three: [] }
我想要做的是遍历容器并一次删除 2 个项目,结果是:
{
one: [{id:1}, {id:2}, {id:7}, {id:8}],
two: [{id:3}, {id:4}, {id:9}, {id:10}],
three: [{id:5}, {id:6}]
}
另外,如果项目列表是奇数 (11),最后一个项目仍会被放入下一个容器中。
{
one: [{id:1}, {id:2}, {id:7}, {id:8}],
two: [{id:3}, {id:4}, {id:9}, {id:10}],
three: [{id:5}, {id:6}, {id:11}]
}
注意:这里的哈希被剪掉了,所以更容易阅读。
我的解决方案是这样的:(简化)
x = 10
containers = { one: [], two: [], three: [] }
until x < 1 do
containers.each do |c|
c << 'x'
c << 'x'
end
x -= 2
end
puts containers
我正在努力思考如何实现这一目标,但我似乎无法让它发挥作用。
【问题讨论】:
-
你能添加你有哪些格式的项目和你想要的吗?目前您的问题无法理解
-
这与ruby-on-rails无关。
-
@Amadan - 我在 Rails 上构建它,所以欢迎任何可以使用 Rails 特定功能的解决方案。
标签: ruby-on-rails ruby algorithm