示例JS 数组和对象的深拷贝操作

示例JS 数组和对象的深拷贝操作

本文实例讲述了JS 数组和对象的深拷贝操作。分享给大家供大家参考,具体如下:

一.数组的深拷贝

let arr = [ undefined, function(){  console.log(123);  }, true, null, {  name:"123",  age:23 }];// arr作为拷贝对象

登录后复制

1. Array.from()

Array.from()能将一个类数组转化成一个真正的数组,因此它返回的是一个新数组。

let arr1 = Array.from(arr);arr[0] = 2;console.log(arr1);// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

登录后复制

2. Object.assign()

let arr1 = Object.assign([], arr)arr[0] = 2;console.log(arr1);// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

登录后复制

此方法也可用作对象的深拷贝

3. Slice()

let arr1 = arr.slice(0);arr[0] = 2;console.log(arr1);// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

登录后复制

4. Concat()

let arr1 = arr.concat();arr[0] = 2;console.log(arr1);// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

登录后复制

5. 扩展运算符深拷贝

// let [...arr1] = arr; // 这两种都可以let arr1 = [...arr];arr[0] = 2;console.log(arr1);// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

登录后复制

此方法也可用作对象的深拷贝

二.对象的深拷贝

let obj = { name: "a", age: 20, sex: false, user: {  a: 20,  n: "b" }, f: function(){  return 1; }, u: undefined, n: null}

登录后复制

用扩展运算符和Object.assign()方法可以深拷贝对象

let obj1 = Object.assign({}, obj)obj[age] = 2;console.log(obj1);// let obj = { name: "a", age: 20, sex: false,user: {a: 20,n: "b},f: function(){return 1;},u: undefined,n: null}

登录后复制

相关学习推荐:javascript视频教程

以上就是示例JS 数组和对象的深拷贝操作的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2726531.html

(0)
上一篇 2025年3月7日 23:32:58
下一篇 2025年3月2日 16:28:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论