js的数组深拷贝代码
时间: 2024-05-19 16:10:26 浏览: 100
以下是 JavaScript 中实现数组深拷贝的一种方式:
```javascript
function deepCopyArray(arr) {
// 首先判断传入的参数是否为数组
if (!Array.isArray(arr)) {
throw new Error("传入的参数不是一个数组");
}
// 创建一个空数组用于存储拷贝后的元素
let copiedArray = [];
// 遍历原数组
for (let i = 0; i < arr.length; i++) {
// 如果当前元素是一个数组,则递归调用 deepCopyArray 函数进行深拷贝
if (Array.isArray(arr[i])) {
copiedArray[i] = deepCopyArray(arr[i]);
} else {
// 如果当前元素不是数组,则直接赋值给新数组
copiedArray[i] = arr[i];
}
}
return copiedArray;
}
// 示例用法
const originalArray = [1, 2, [3, 4]];
const copiedArray = deepCopyArray(originalArray);
console.log(originalArray); // [1, 2, [3, 4]]
console.log(copiedArray); // [1, 2, [3, 4]]
```
这段代码定义了一个名为`deepCopyArray`的函数,它接受一个数组作为参数,并返回该数组的深拷贝结果。在函数内部,我们首先判断传入的参数是否为数组,然后创建一个空数组`copiedArray`用于存储拷贝后的元素。接着,我们遍历原数组,并判断每个元素的类型。如果当前元素是一个数组,我们递归调用`deepCopyArray`函数进行深拷贝,否则直接将元素赋值给新数组。最后,返回深拷贝后的数组。
阅读全文