美文网首页
JS 实现深拷贝、浅拷贝的几种方法

JS 实现深拷贝、浅拷贝的几种方法

作者: 蕉下客_661a | 来源:发表于2022-09-16 11:34 被阅读0次

对象深拷贝

第一种:使用递归的方法实现深拷贝

function deepClone(obj){
    let objClone = Array.isArray(obj)?[]:{};
    if(obj && typeof obj==='object'){
        for(let key in obj){
            if(obj[key] && typeof obj[key]==="object"){
                objClone[key]=deepClone(obj[key])
            }else{
                objClone[key] = obj[key]
            }
        }
    }
    return objClone;
}

第二种:使用JSON.parse()和JSON.stringify()

JSON.parse(JSON.stringify(obj))

无法实现对象中方法的深拷贝

第三种:使用Object.assign()

Object.assign({},obj)

注意:只能深拷贝对象的一级属性,二级属性之后即为浅拷贝

数组的深拷贝

第一种:concat(arr1,arr2)

只有在数组元素是一维的时候,是深拷贝,一维以上是对值的引用

第二种:slice(idx1,idx2)

①没有参数的时候,是拷贝数组
②一个参数的时候,拷贝从起始位置到数组末尾的元素
③两个参数的时候,拷贝从起始位置到 结束位置的元素(不包含结束位置的元素,含头不含尾)
一维数组元素是深拷贝,数组元素二维以上是值的引用

相关文章

  • js浅拷贝深拷贝

    js浅拷贝,深拷贝的简单实现 基础数据 浅拷贝 深拷贝

  • JS 中深拷贝的几种实现方法

    JS 中深拷贝的几种实现方法 1、使用递归的方式实现深拷贝 方法二 2、通过 JSON 对象实现深拷贝 缺点 (1...

  • Javascript中的深拷贝

    JS 中深拷贝的几种实现方法 1、使用递归的方式实现深拷贝 //使用递归的方式实现数组、对象的深拷贝 functi...

  • JS中的深拷贝与浅拷贝

    知乎:js中的深拷贝和浅拷贝? 掘金: js 深拷贝 vs 浅拷贝 前言 首先深拷贝与浅拷贝只针对 Object,...

  • 深拷贝、浅拷贝

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试题整理

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 对象深拷贝和浅拷贝

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

  • 2020前端高频面试题总结(附答案)

    [ js基础题 ] 1. new的实现原理是什么? 2. 深拷贝和浅拷贝的区别是什么 深拷贝 浅拷贝 3. bin...

  • JS 实现深拷贝、浅拷贝的几种方法

    对象深拷贝 第一种:使用递归的方法实现深拷贝 第二种:使用JSON.parse()和JSON.stringify(...

  • JS 实现深拷贝、浅拷贝的几种方法

    对象深拷贝 第一种:使用递归的方法实现深拷贝 第二种:使用JSON.parse()和JSON.stringify(...

网友评论

      本文标题:JS 实现深拷贝、浅拷贝的几种方法

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