javascript - 变量 javascript 的快照

标签 javascript

我试图保留某个变量的记录数组,但每当我推送该变量时,它不会推送该变量的实例,而是推送变量本身。

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/

相关文章:

javascript - 无法将字符串变量传递给 JS 日期对象

javascript - 无法访问回调函数 React 中的属性

javascript - CSS3可计算表达式?

javascript - 如何向 JavaScript Date 对象添加 30 分钟?

javascript - 使用特殊字符对 UTF-8 中的单词中的句子进行标记

javascript - 更改 Sublime 3 中 JS 变量的颜色

javascript - 嵌套 Backbone.js 获取

javascript - 有没有什么有效的自动接口(interface)测试?

javascript - 将第一张幻灯片图像保持在固定位置 - Hero Slider jQuery

javascript - jQuery ajax jsonp 意外标记 :