将 JavaScript 中的数组复制到另一个数组时:
var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d'); //Now, arr1 = ['a','b','c','d']
我意识到 arr2
指的是与 arr1
相同的数组,而不是一个新的独立数组。如何复制数组以获得两个独立的数组?
最佳答案
使用这个:
let oldArray = [1, 2, 3, 4, 5];
let newArray = oldArray.slice();
console.log({newArray});
基本上,slice()
操作克隆数组并返回对新数组的引用。
另请注意:
对于引用、字符串和数字(而不是实际对象),slice()
将对象引用复制到新数组中。原始数组和新数组都引用同一个对象。如果引用的对象发生更改,则更改对新数组和原始数组都是可见的。
字符串和数字等原语是不可变的,因此无法更改字符串或数字。
关于javascript - 按值复制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264880/