`

js 深拷贝

    博客分类:
  • js
阅读更多

一。js深拷贝方式:

      1、递归实现。

 function clone(data) {
      if (typeof data === 'object') {
        var newData = Array.isArray(data) ? [] : {};
        for (var i in data) {
          newData[i] = clone(data[i])
        }
        return newData;
      } else {
        return data;
      }
    }
    var a = {a: 1, b: 2, c: {d: 1}};
    var b = clone(a)
    console.log(b)
    b.c.d = 3
    console.log(a,b)

      2、JSON.stringify和JSON.parse实现。

function cloneTwo(data) {
     var newData = JSON.stringify(data);
     return JSON.parse(newData);
    }
    var aa = {a: 1, b: 2, c: {d: 1}};
    var bb = cloneTwo(aa)
    console.log(bb)
    bb.c.d = 3
    console.log(aa,bb)

 

 

分享到:
评论

相关推荐

    深拷贝.js(考虑最全的深拷贝函数)

    js考虑最完善的深拷贝函数,可以深拷贝引用对象和基本对象

    javascript深拷贝

    javascript深拷贝demo,有封装好的深拷贝函数和调用的demo

    js深拷贝与浅拷贝详解以及例子.pdf

    JS 深拷贝与浅拷贝详解以及例子 深拷贝与浅拷贝是 JavaScript 开发中常见的概念,分别对应着不同的拷贝方式。在本文中,我们将详细介绍浅拷贝和深拷贝的概念、特点、实现方法和实例。 一、浅拷贝 浅拷贝只拷贝一...

    JavaScript深拷贝和浅拷贝概念与用法实例分析

    本文实例讲述了JavaScript深拷贝和浅拷贝概念与用法。分享给大家供大家参考,具体如下: js中的浅拷贝和深拷贝,只是针对复杂数据类型(Objcet,Array)的复制问题。简单来讲浅拷贝和深拷贝都可以实现在原有对象的基础...

    Jingce-lu#lunotes#JS深拷贝1

    手写一个JS深拷贝手写一个JS深拷贝乞丐版面试够用版乞丐版var newObj = JSON.parse( JSON.stringify( someObj )

    js数组的深拷贝

    在JavaScript中,数组的深拷贝是一个常见的需求,它涉及到数据结构的复制,尤其是在处理复杂对象和嵌套数据时。深拷贝与浅拷贝不同,浅拷贝只是复制引用,而深拷贝会创建一个新的对象,包含原始数组的所有元素,并...

    最专业的深拷贝JS库

    "最专业的深拷贝JS库"是一个专门用于实现JavaScript对象深拷贝的工具库。这个库采用了递归的方式来处理深拷贝,递归是一种自上而下解决问题的方法,当遇到复杂的数据结构,如嵌套的对象或数组时,递归可以有效地一...

    javascript深拷贝、浅拷贝和循环引用深入理解

    JavaScript中的深拷贝和浅拷贝是编程中常见的概念,主要涉及到对象和数组的复制。在JavaScript中,数据类型分为基本数据类型(如Number、String、Boolean等)和引用数据类型(如Object、Array等)。基本类型直接存储...

    js 深拷贝函数

    在给定的代码中,`objectClone`函数就是一个实现JavaScript深拷贝功能的函数。 首先,我们来分析这个`objectClone`函数的逻辑: 1. 函数接受两个参数:`obj`是要被拷贝的对象,`preventName`是一个可选参数,用于...

    javascript深拷贝的原理与实现方法分析

    JavaScript中的深拷贝是创建一个全新的对象,这个新对象与其原始对象具有相同的属性和值,但它们在内存中是独立的,互不影响。这与浅拷贝不同,浅拷贝只复制对象的引用,而不是创建完全独立的副本。在JavaScript中,...

    【JavaScript源代码】JavaScript深拷贝的一些踩坑记录.docx

    JavaScript中的深拷贝是开发过程中常见且重要的概念,主要用于创建一个与原对象具有相同属性和值的新对象,但不会因改变原始对象而影响复制对象。然而,深拷贝并不总是那么简单,尤其在处理特殊类型的对象时,可能会...

    javascript深拷贝(deepClone)详解

    javascript深拷贝是初学者甚至有经验的开发着,都会经常遇到问题,并不能很好的理解javascript的深拷贝。 深拷贝(deepClone)? 与深拷贝相对的就是浅拷贝,很多初学者在接触这个感念的时候,是很懵逼的。 为啥要用...

    多维数组和对象-深去重和深拷贝.js

    对多维数组,对象,进行去重,相同的值只保留一个,常见的new Set()和filter,只能去重一维数组,并不能进行深层的去重,逻辑:判断是否为对象,为对象判断是否为数组或是真的对象,递归一直筛选为值,判断首次...

    js代码-js深拷贝

    在这个主题中,我们将深入探讨JavaScript中的js深拷贝,以及如何在实际编程中实现它。 首先,让我们理解什么是浅拷贝。浅拷贝仅仅复制对象或数组的顶层属性,而不会复制其内部引用的对象。这意味着如果原始对象的...

    javascript 拷贝节点cloneNode()使用介绍.docx

    - **JS深度拷贝Object/Array实例分析**:除了DOM节点外,JavaScript中还有许多其他类型的对象(如Object和Array),它们也可以进行深拷贝或浅拷贝。这些操作在处理复杂的数据结构时非常重要。 - **JavaScript数组深...

    浅拷贝深拷贝之jQuery中的$.extend分析

    这篇博客“浅拷贝深拷贝之jQuery中的$.extend分析”深入探讨了`$.extend`在浅拷贝和深拷贝场景下的工作原理,这对于理解JavaScript对象的复制机制至关重要。 浅拷贝是指创建一个新对象,然后将源对象的引用属性复制...

    js代码-深拷贝优化

    在JavaScript中,深拷贝是一种常见的操作,它用于创建一个对象或数组的完全独立的...在main.js文件中,可能会包含一个实现了深拷贝优化的函数,供项目中使用。而README.txt文件可能详细解释了该函数的用法和注意事项。

Global site tag (gtag.js) - Google Analytics