我试图保留某个变量的记录数组,但每当我推送该变量时,它不会推送该变量的实例,而是推送变量本身。
var array = [0,0,0];
var record = [];
record.push(array);
for(var i=0;i<array.length;i++) {
array[i]++;
}
record.push(array);
console.log(record);
//I need record to be [[0,0,0],[1,1,1]], but it gives two copies of the latter
最佳答案
您可以在数组上使用“切片”(可选的“0”作为第一个参数)来获取它的克隆:
var array = [0,0,0];
var record = [];
record.push(array.slice(0));
for(var i=0;i<array.length;i++) {
array[i]++;
}
record.push(array.slice(0));
console.log(record);
// record is: [[0, 0, 0], [1, 1, 1]]
关于javascript - 变量 javascript 的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52921343/