一尘不染

按值复制数组

javascript

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

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

我意识到它arr2指的是与 相同的数组arr1,而不是一个新的独立数组。如何复制数组以获得两个独立的数组?


阅读 126

收藏
2022-02-13

共1个答案

一尘不染

用这个:

let oldArray = [1, 2, 3, 4, 5];

let newArray = oldArray.slice();

console.log({newArray});

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

另请注意:

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

字符串和数字等原语是不可变的,因此不可能更改字符串或数字。

2022-02-13