首页 > 解决方案 > Javascript:使用 slice() 创建数组的副本;

问题描述

我需要创建一个数组的副本,以便我可以对一个数组进行修改而不影响另一个数组。

例如:

var a = [[1],[2],[3]];
var b = a.slice(0);
b[1].push(100);
b // [[1],[2, 100],[3]];
a // expect: [[1],[2],[3]]; , actual: [[1],[2, 100],[3]];

我也试过:

var b = new Array(a);

但这会将所有 [1],[2],[3] 放在新数组中的索引 0 上。

我在这里想念什么?

多谢你们!

标签: javascriptarrays

解决方案


you also have to copy the inner arrays:

 var b = a.map(sub => sub.slice());

推荐阅读