美文网首页前端路上不辛苦
对象和数组的深浅拷贝

对象和数组的深浅拷贝

作者: 小白IT | 来源:发表于2020-08-10 15:12 被阅读0次

1、对象的浅拷贝

(1)对象的合并 Object.assign(),第一个参数必须是个空对象

(2)对象的解构赋值

2、对象深拷贝

(1)利用jQuery的$.extend方法

(2)通过转换字符串即内置的JSON对象来转换拷贝

弊端:这种简单粗暴的方法有其局限性,当值为undefined、function、symbol 会在转换过程中被忽略

(3)数组或对象深拷贝(利用循环和递归)

3、数组浅拷贝

(1)利用数组的 slice 方法或者 concat 方法

4、数组深拷贝

        与对象深拷贝方法相同

(1)通过转换字符串即内置的JSON对象来转换拷贝

弊端:这种简单粗暴的方法有其局限性,当值为undefined、function、symbol 会在转换过程中被忽略

(2)数组或对象深拷贝(利用循环和递归)(但是key为null或undefined时不能拷贝)

(3) 原理也比较好理解,他是将原数组中抽离部分出来形成一个新数组。我们只要设置为抽离全部,即可完成数组的深拷贝

var arr = [1,2,3,4,5]

vararr2 = arr.slice(0)

arr[2] =5

console.log(arr)

console.log(arr2)

相关文章

  • js的深浅拷贝

    js的深浅拷贝可以分为数组的深浅拷贝和对象的深浅拷贝 一、数组的深浅拷贝如果只是简单的将数组中的元素付给另外一个数...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • 重新认识js复杂类型数据的引用和深浅拷贝

    js 基本概念———— 数据类型 js 深浅拷贝之概念 代码实现 —— 数组和对象的j浅拷贝 代码实现 —— 数组...

  • js 高频面试题(最新)

    1、深浅拷贝 (1) 定义 浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引...

  • 数组/对象的深浅拷贝

    浅拷贝 只复制了引用,没有复制真正的值; 实现数组浅拷贝可以利用arr.concat()、arr.slice()、...

  • 深浅拷贝

    深浅拷贝针对的是 对象类型,如果是字符串的数组用[...arr],还是不会影响 要区分针对数组的深浅拷贝(默认情况...

  • 实现数组和对象的深浅拷贝

    前提:原始数据类型和对象类型赋值时的差异 JavaScript的数据类型分为原始数据类型和对象类型。二者在内存中存...

  • js深浅拷贝

    所谓的深浅拷贝是相对与typeof === 'object' 而言的,数组是用堆对应保存的。浅拷贝:拷贝了对象的存...

  • 对象和数组的深浅拷贝

    1、对象的浅拷贝 (1)对象的合并 Object.assign(),第一个参数必须是个空对象 (2)对象的解构赋值...

  • 赋值、浅拷贝和深拷贝(数组和对象的深浅拷贝)

    具体方法 Object.assign() Array.prototype.concat() Array.proto...

网友评论

    本文标题:对象和数组的深浅拷贝

    本文链接:https://www.haomeiwen.com/subject/ysrjdktx.html