所以目前我这里有一个数组,我想对最后一项进行一些修改并将其推回。我这里有这段代码:(示例已简化)
var array = [
[ [0,1,2], [3,4,5] ]
];
//other stuff...
var add = array[0].slice(); //to clone the array (but not working as expected)
add[0][0] = 10;
array.push(add);
console.log(array);
这是结果
如您所见,第 1 项和第 2 项的第一项都更改为 10
。我怎么解决这个问题?我已经克隆了阵列。
最佳答案
Array.prototype.slice()
进行浅拷贝,因此不会复制嵌套数组。您应该使用深度克隆方法,如 this .
关于javascript - 多维数组引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737814/