// 深拷贝数组示例
// 使用 JSON.parse 和 JSON.stringify 进行深拷贝
const originalArray = [1, 2, { a: "b" }, [3, 4]];
const deepCopiedArray = JSON.parse(JSON.stringify(originalArray));
console.log(deepCopiedArray); // [1, 2, { a: "b" }, [3, 4]]
console.log(deepCopiedArray === originalArray); // false
console.log(deepCopiedArray[2] === originalArray[2]); // false
// 浅拷贝数组示例
// 使用 slice 方法进行浅拷贝
const shallowCopiedArray = originalArray.slice();
console.log(shallowCopiedArray); // [1, 2, { a: "b" }, [3, 4]]
console.log(shallowCopiedArray === originalArray); // false
console.log(shallowCopiedArray[2] === originalArray[2]); // true (对象和数组引用相同)
// 使用扩展运算符进行浅拷贝
const spreadCopiedArray = [...originalArray];
console.log(spreadCopiedArray); // [1, 2, { a: "b" }, [3, 4]]
console.log(spreadCopiedArray === originalArray); // false
console.log(spreadCopiedArray[2] === originalArray[2]); // true (对象和数组引用相同)
JSON.parse(JSON.stringify(...))
是一种简单的深拷贝方法,但需要注意它不能处理函数、undefined
、Date
对象等特殊类型。
上一篇:js 对象转数组
下一篇:js 复制数组
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站