将数组按值复制

90 浏览
0 Comments

将数组按值复制

当在JavaScript中将一个数组复制到另一个数组时:

var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']

我发现arr2引用的是与arr1相同的数组,而不是一个新的、独立的数组。我该如何复制该数组以获得两个独立的数组?

admin 更改状态以发布 2023年5月21日
0
0 Comments

使用这个:

let oldArray = [1, 2, 3, 4, 5];
let newArray = oldArray.slice();
console.log({newArray});

基本上,slice() 操作会克隆数组并返回对新数组的引用。

另外注意:

对于引用、字符串和数字(而不是实际对象),slice() 会将对象引用复制到新数组中。 原始数组和新数组都引用同一个对象。如果引用对象发生更改,则更改对新数组和原始数组都可见。

像字符串和数字这样的基本类型是不可变的,所以对字符串或数字的更改是不可能的。

0