js如何copy两个数组
时间: 2024-09-15 13:12:29 浏览: 31
在JavaScript中,有多种方法可以复制数组。以下是几种常见的方式:
1. **浅拷贝**(`.slice()` 或 `.concat()`)
- 使用`.slice()`方法:`let copyArr = originalArr.slice();`
- 使用`.concat()`方法:`let copyArr = originalArr.concat();`
这两种方法都是直接复制数组元素,对于基本类型的值(如数字、布尔值等),它们是深拷贝;但对于复杂类型(如对象或数组),它们还是指向原来的引用。
2. **深拷贝**(利用JSON或第三方库)
- 使用`JSON.parse()`和`JSON.stringify()`:先序列化成字符串,再反序列化,得到新的数组。注意这仅适用于纯数据结构,不含函数的对象。示例:
```javascript
let deepCopyArr = JSON.parse(JSON.stringify(originalArr));
```
- 使用第三方库,比如`lodash`的`_.cloneDeep()`:`let deepCopyArr = _lodash.cloneDeep(originalArr);`
3. **手动迭代**(适用于任何数组类型)
- 遍历原数组,逐个添加到新数组:创建一个新的空数组,然后使用`.push()`方法逐个添加元素。
选择哪种方法取决于你对数组的具体需求以及性能要求。如果是简单的数据结构,浅拷贝通常就足够了;如果需要完整复制所有嵌套结构,就需要深拷贝。
阅读全文