问候其他程序员,
https://jsfiddle.net/martin_varbanov/vq5hhzmo/2/
我有一个名为arrStack的数组,它应该是我的堆栈,我想在其中推送一些矩阵。 pop()函数工作正常,但是当我尝试操作数组并将其推送到堆栈时,它似乎无法正常工作,例如:
预期:
[
[[1, 1, 1, 1], [1, 1, 1, 1]]
[[2, 2, 2, 2], [2, 2, 2, 2]]
]
结果:
[
[[2, 2, 2, 2], [2, 2, 2, 2]]
[[2, 2, 2, 2], [2, 2, 2, 2]]
]
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:2)
这种情况正在发生,因为当您执行arrStack.push(arr);时,您没有推动arr实例的克隆,但是您正在推送引用。
您可以通过将arr转换为JSON并将其解析回来来避免这种情况。
arrStack.push(JSON.parse(JSON.stringify(arr)));
这是您的工作code。
答案 1 :(得分:1)