本文摘自PHP中文网,作者coldplay.xixi,侵删。

本文实例讲述了JS 数组和对象的深拷贝操作。分享给大家供大家参考,具体如下:
一.数组的深拷贝
1 2 3 4 5 6 7 8 9 10 11 12 13 | let arr = [
undefined,
function (){
console.log(123);
},
true ,
null ,
{
name: "123" ,
age:23
}
];
|
1. Array.from()
Array.from()能将一个类数组转化成一个真正的数组,因此它返回的是一个新数组。
1 2 3 4 | let arr1 = Array.from(arr);
arr[0] = 2;
console.log(arr1);
|
2. Object.assign()
1 2 3 4 | let arr1 = Object.assign([], arr)
arr[0] = 2;
console.log(arr1);
|
此方法也可用作对象的深拷贝
3. Slice()
1 2 3 4 | let arr1 = arr.slice(0);
arr[0] = 2;
console.log(arr1);
|
4. Concat()
1 2 3 4 | let arr1 = arr.concat();
arr[0] = 2;
console.log(arr1);
|
5. 扩展运算符深拷贝
1 2 3 4 5 | let arr1 = [...arr];
arr[0] = 2;
console.log(arr1);
|
此方法也可用作对象的深拷贝
二.对象的深拷贝
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | let obj = {
name: "a" ,
age: 20,
sex: false ,
user: {
a: 20,
n: "b"
},
f: function (){
return 1;
},
u: undefined,
n: null
}
|
用扩展运算符和Object.assign()方法可以深拷贝对象
1 2 3 4 | let obj1 = Object.assign({}, obj)
obj[age] = 2;
console.log(obj1);
|
相关学习推荐:javascript视频教程
以上就是示例JS 数组和对象的深拷贝操作的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
js中数组的迭代方法:filter、reduce、every、some
在 js 中使用类似 php 的魔术方法
js如何控制css
html如何引入js文件
javascript如何自动关闭窗口
js 判断值是否为数字
如何使用js控制下拉列表左右选择
jquery easyui收费的么
用js快速求出三角形面积
vue中computed和watch的用法及区别
更多相关阅读请进入《js》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 示例JS 数组和对象的深拷贝操作