javascript - 如何在没有引用的情况下克隆数组

时间:2018-01-12 04:17:43

标签: javascript

我正在尝试将Array克隆到一个新的,我希望克隆的数组没有引用原始副本

我知道有splicefrom方法,但这些方法中的新数组都引用了原始数组

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],但结果是相同的

如何创建一个新数组,其中每个元素与原始数组具有相同的值,但克隆的数组应该没有对原始数组的引用?

谢谢!

1 个答案:

答案 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;
}