📅  最后修改于: 2023-12-03 14:53:51.943000             🧑  作者: Mango
在 JavaScript 中,我们可以将一个数组分配给另一个数组,从而实现快速的复制和重复使用。
let newArray = oldArray.slice();
上述代码中,通过 slice()
方法将旧数组 oldArray
的所有元素复制到新数组 newArray
中。这相当于在 newArray
中创建了一个新的副本,对其进行更改不会影响 oldArray
中的值。
// 创建一个包含数字 1 到 5 的数组
let oldArray = [1, 2, 3, 4, 5];
// 使用 slice() 方法将旧数组复制到新数组
let newArray = oldArray.slice();
// 修改新数组
newArray.push(6);
// 输出结果
console.log(oldArray); // [1, 2, 3, 4, 5]
console.log(newArray); // [1, 2, 3, 4, 5, 6]
需要注意的是,如果原始数组中包含对象或其他引用类型的元素,那么新数组中的引用会指向相同的对象或元素。这意味着对新数组中的元素所做的更改也会反映在旧数组中。
例如:
// 创建一个包含对象的数组
let originalArray = [{name: 'Alice'}, {name: 'Bob'}, {name: 'Charlie'}];
// 复制数组
let newArray = originalArray.slice();
// 修改新数组中的对象
newArray[0].name = 'Alex';
// 输出结果
console.log(originalArray); // [{name: 'Alex'}, {name: 'Bob'}, {name: 'Charlie'}]
console.log(newArray); // [{name: 'Alex'}, {name: 'Bob'}, {name: 'Charlie'}]
因此,在处理包含对象的数组时,我们需要注意这种行为。如果需要创建全新的对象,请考虑使用深拷贝方法,例如 JSON.parse(JSON.stringify(array))
。