// 浅拷贝数组示例
// 使用 slice() 方法
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.slice(); // 创建 arr1 的浅拷贝
arr2.push(5); // 修改 arr2 不会影响 arr1
console.log(arr1); // 输出: [1, 2, 3, 4]
console.log(arr2); // 输出: [1, 2, 3, 4, 5]
// 使用 spread 运算符
let arr3 = [...arr1]; // 创建 arr1 的浅拷贝
arr3.push(6); // 修改 arr3 不会影响 arr1
console.log(arr1); // 输出: [1, 2, 3, 4]
console.log(arr3); // 输出: [1, 2, 3, 4, 6]
// 深拷贝数组示例
// 使用 JSON.parse 和 JSON.stringify
let arr4 = [1, 2, { nested: 'object' }, 4];
let arr5 = JSON.parse(JSON.stringify(arr4)); // 创建 arr4 的深拷贝
arr5[2].nested = 'changed'; // 修改 arr5 中的对象不会影响 arr4
console.log(arr4[2].nested); // 输出: object
console.log(arr5[2].nested); // 输出: changed
// 注意:JSON.parse 和 JSON.stringify 不能处理函数、undefined、Infinity、NaN 等特殊值,且会忽略对象中的不可枚举属性和 Symbol 属性。
上一篇:js 复制数组
下一篇:js fill
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站