在 JavaScript 中复制数组的方法:浅拷贝(保持原始元素引用):.slice()展开运算符Array.from()深拷贝(创建新实例):.map()递归

如何使用 JavaScript 复制数组
在 JavaScript 中,数组是一个有序的、可变的元素集合。复制数组时,生成一个包含原始数组元素的副本,并与原始数组保持分离。有以下几种方法可以复制数组:
1. 浅拷贝(.slice()、展开运算符(...)、Array.from()):
浅拷贝只复制数组的元素值,而不复制子数组。原始数组和副本数组共享对相同元素的引用。
-
.slice():newArray = oldArray.slice() - 展开运算符:
newArray = [...oldArray] -
Array.from():newArray = Array.from(oldArray)
2. 深拷贝(.map()、递归):
深拷贝创建一个数组的新实例,并为数组中的所有元素创建独立的副本,包括子数组。
-
.map():newArray = oldArray.map(element => element) - 递归:
<code class="javascript">function deepCopy(array) {
return array.map(element => {
if (Array.isArray(element)) {
return deepCopy(element);
} else {
return element;
}
});
}</code>注意:
- 一些浏览器不支持
Array.from(),因此建议使用浅拷贝方法。 - 如果数组中包含非基本类型元素(如对象或函数),深拷贝是必不可少的。否则,浅拷贝会复制引用,导致原始数组和副本数组的意外行为。










