我正在尝试将Array克隆到一个新的,我希望克隆的数组没有引用原始副本
我知道有splice
和from
方法,但这些方法中的新数组都引用了原始数组
e.g。
let original = [ [1,2], [3,4] ];
let cloned = Array.from(original); // this will copy everything from original
original[0][0] = -1;
console.log(cloned[0][0]); // the cloned array element value changes too
我也尝试使用循环来cloned[i][j] = original[i][j]
,但结果是相同的
如何创建一个新数组,其中每个元素与原始数组具有相同的值,但克隆的数组应该没有对原始数组的引用?
谢谢!
答案 0 :(得分:8)
通过使用此方法,我们可以创建数组的副本。请查看以下示例。致SO Answer
let original = [
[1, 2],
[3, 4]
];
let cloned = JSON.parse(JSON.stringify(original)); // this will copy everything from original
original[0][0] = -1;
console.log(cloned); // the cloned array element value changes too
console.log(original);
.as-console {
height: 100%;
}
.as-console-wrapper {
max-height: 100% !important;
top: 0;
}