美文网首页
一文搞定数组深拷贝、浅拷贝方法

一文搞定数组深拷贝、浅拷贝方法

作者: 虎牙工务员刘波 | 来源:发表于2021-04-06 16:42 被阅读0次

前言:最近在和同事们讨论数组深拷贝、浅拷贝的问题,整理了一下,非常简单,以免大家今后混晰。

区别:
深拷贝:复制整个对象的值来存储(开辟新的内存来存储新东西)
浅拷贝:只拷贝存储对象的指针指向(会共用同一块内存,对象变化会相互影响)

浅拷贝的方法(多层时候为才为深拷贝):

  • ES6的 ... 扩展符
const data3 = [1,2,3,4,5]
const copy3 = [...data3]  //一层拷贝
copy3[0] = 111
console.log(copy3)  // [111, 2, 3, 4, 5]
console.log(data3)  // [1, 2, 3, 4, 5]
  • ES6的 Object.assign
const data = [1,2,3]
const copy = Object.assign(data)
copy[0] = 1111
copy     // [1111, 2, 3]
data     // [1111, 2, 3]

多层数组拷贝(深拷贝):

  • JSON.stringify、JSON.parse
const data4 = [[1,2,3],[4,5,6]]
const copy4 = JSON.parse(JSON.stringify(data4))  //多层数组拷贝
copy4[0][0] = 111
console.log(copy4)   // [[111,2,3],[4,5,6]]
console.log(data4)  // [[1,2,3],[4,5,6]]

以上均为个人理解整理,如有错误留言指出~~~(❤ ω ❤)

相关文章

  • 关于几个拷贝的问题

    数组浅拷贝 数组深拷贝 复合数组深拷贝

  • 对象深拷贝和浅拷贝

    浅拷贝 深拷贝 深拷贝的递归方法 深拷贝的JSON方法

  • 面试题【Day17】

    本篇绪论 1, 数组去重 2,深、浅拷贝 1,数组去重 方法一: 方法二: 2, 深、浅拷贝 基本数据类型不管是浅...

  • 一文搞定数组深拷贝、浅拷贝方法

    前言:最近在和同事们讨论数组深拷贝、浅拷贝的问题,整理了一下,非常简单,以免大家今后混晰。 区别:深拷贝:复制整个...

  • 浅拷贝与深拷贝

    /*浅拷贝:拷贝地址*/ /*深拷贝:拷贝对象*/ 用Strong修饰不可变数组:浅拷贝 用Copy修饰不可变数组...

  • 浅拷贝和深拷贝

    数组的深拷贝和浅拷贝 浅拷贝:var arr = ["One","Two","Three"]; var arrto...

  • 深拷贝 浅拷贝

    深入认识深拷贝 浅拷贝 公共方法 // 深拷贝 浅拷贝 对于基本类型来说 对于赋值操作 就是 深拷贝 因为值...

  • Object 对象

    什么是浅拷贝,如何实现浅拷贝?什么是深拷贝,如何实现深拷贝? 是什么: 浅拷贝: 将原对象或原数组的引用直接赋给新...

  • 对象的深浅拷贝

    浅拷贝 深拷贝 方法1 方法2

  • JS中对象的复制

    JS中的对象复制分为两种情况:深拷贝和浅拷贝。深拷贝和浅拷贝的区别在于对数组和对象的拷贝,对它们拷贝时浅拷贝只是拷...

网友评论

      本文标题:一文搞定数组深拷贝、浅拷贝方法

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