我有一个数字数组,我希望各个数字是键,数组本身是值。这样做不会带来任何问题
keys.each do |i|
myHash[i] = keys
end
但是现在我希望值为数组减去每次后续迭代的第一个值,所以我这样做了
keys = Array.new
numbers.each do |i|
keys.push(i)
end
keys.each do |i|
# puts i
# puts numbers.inspect
myHash[i] = numbers
numbers.shift
end
它为我提供了空数组作为所有键的哈希值。这是为什么?最终,我希望我的哈希在[1,2,3,4]
的数组中看起来像这样{1 => [1,2,3,4],2 => [2,3,4],3 => [3,4],4 => [4]}
谢谢!
答案 0 :(得分:2)
您没有对数组进行深层复制。
尝试:
keys.each do |i|
# puts i
# puts numbers.inspect
myHash[i] = numbers.clone
numbers.shift
end