js把一个数组赋给一个空数组
时间: 2024-09-13 15:00:16 浏览: 99
在JavaScript中,如果你将一个数组赋值给一个空数组,你实际上是将一个数组对象的引用复制给了另一个数组。这意味着,两个数组变量实际上指向内存中同一个数组对象。对任何一个数组所做的任何修改都会反映在另一个数组上。
例如,有以下代码:
```javascript
let originalArray = [1, 2, 3];
let newArray = originalArray;
```
在这个例子中,`newArray` 不是一个独立的数组,而是一个指向 `originalArray` 所指向的同一个数组的引用。如果我们修改 `newArray`,`originalArray` 也会随之改变:
```javascript
newArray.push(4); // 在newArray末尾添加一个元素
console.log(originalArray); // 输出: [1, 2, 3, 4]
console.log(newArray); // 输出: [1, 2, 3, 4]
```
你会注意到,两个数组的输出结果是相同的,因为它们引用的是同一个数组对象。
要创建一个真正独立的数组副本,你需要执行一个深拷贝,可以使用诸如`slice()`方法、展开运算符`...`或`JSON.parse(JSON.stringify(array))`等方法:
```javascript
let originalArray = [1, 2, 3];
let newArray = originalArray.slice(); // 使用slice方法创建一个新数组
// 或者
let newArray = [...originalArray]; // 使用展开运算符创建一个新数组
// 或者
let newArray = JSON.parse(JSON.stringify(originalArray)); // 使用JSON方法进行深拷贝
```
现在,`newArray` 是一个与 `originalArray` 相互独立的新数组,对 `newArray` 的修改不会影响到 `originalArray`。
阅读全文