我想要以下哈希输出:
{ 0 => [0,1,2], 1 => [0,1,2], 2 => [0,1,2],
3 => [3,4,5], 4 => [3,4,5], 5 => [3,4,5],
6 => [6,7,8], 7 => [6,7,8], 8 => [6,7,8]
}
凭直觉我可以硬编码这些值,但我很难弄清楚如何动态地将每个散列键分配给适当的数组值。例如,也许创建一个 9.times 循环?
{ 0 => (0..2).to_a, 1 => (0..2).to_a, 2 => (0..2).to_a,
3 => (3..5).to_a, 4 => (3..5).to_a, 5 => (3..5).to_a,
6 => (6..8).to_a, 7 => (6..8).to_a, 8 => (6..8).to_a
}
感谢您的指导
最佳答案
动态上限:
count, split = 9, 3
0.upto(count - 1).map do |i|
[i, [*(i / split * split)...(i / split) * split + split]]
end.to_h
关于arrays - Ruby:在散列中分配数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54751223/