首页 > 其他分享 >js实现深拷贝复制的方法

js实现深拷贝复制的方法

时间:2023-12-14 18:33:12浏览次数:25  
标签:obj js 复制 let key deepCopy 拷贝 copy

utils/deepCopy.js

export default function deepCopy(obj) { // 深拷贝方法
  if (typeof obj !== 'object' || obj === null) {
	return obj;
  }

  let copy;
  if (obj instanceof Array) {
	copy = [];
	for (let i = 0; i < obj.length; i++) {
	  copy[i] = deepCopy(obj[i]);
	}
  } else {
	copy = {};
	for (let key in obj) {
	  if (obj.hasOwnProperty(key)) {
		copy[key] = deepCopy(obj[key]);
	  }
	}
  }

  return copy;
}

引用

import deepCopy from '@/util/deepCopy.js';

const obj = { name: 'Tom', age: 29, hobbies: ['sing', 'jump','rap'] };
const copiedObj = deepCopy(obj);

标签:obj,js,复制,let,key,deepCopy,拷贝,copy
From: https://www.cnblogs.com/axingya/p/17901752.html

相关文章

  • 实现XML与JSON转换,实测这个方法最便捷
    XML和JSON是当今最常用的两种数据格式,在数据交换和存储领域占有重要地位。XML以其树状结构和可扩展性被广泛使用,而JSON则以其轻量级和易读性受到开发者的青睐。有时候,为了更好地利用它们的优点解决数据共享、数据处理和数据存储等问题,我们需要将这两种格式进行转换。本文将介绍如......
  • 记录--js小练习(弹幕、 电梯导航、 倒计时、 随机点名、 购物放大镜)
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助DOM小练习弹幕电梯导航倒计时随机点名购物放大镜1.弹幕效果预览功能:输入弹幕内容,按下回车显示一条弹幕(弹幕颜色、字体随机生成)思路:设置按钮抬起事件,在事件中判断如果按下的是回车键则将输入框中替换掉......
  • React Native package.json 控制App的版本号
    原文:https://blog.csdn.net/gu1920948999/article/details/117984844package.json"version":"1.0.0",android配置android/app/build.gradleimportgroovy.json.JsonSlurper.../***获取版本号*/defgetAppVersion(){definputFile=new......
  • Node.js
    在Node.js中,模块化是一种重要的编程概念,用于组织和管理代码。Node.js支持两种模块化的标准:CommonJS和ECMAScript(ES)模块。CommonJS模块化:CommonJS是Node.js最早引入的模块化标准。在CommonJS中,每个文件都是一个模块,并且使用require函数导入其他模块,使用module.exports......
  • js (for in)和(for of)区别
    for...in语句以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。for...of语句在可迭代对象(包括Array,Map,Set,String,TypedArray,arguments对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句参考:https://developer.mozilla.org......
  • 使用Github+PicGo+JsDelivr搭建图床
    本文主要记录使用PicGo+Github搭建图床,并使用jsDelivrCDN加速;下载安装PicGo#安装包下载地址https://github.com/Molunerfinn/PicGo/releases#官方文档地址https://picgo.github.io/从github上选择稳定版本进行下载,我这里因为使用的是M1芯片的Mac,故选择的是Pi......
  • 常用JS库(转)
    Day.js一个极简的处理时间和日期的JavaScript库,和Moment.js的API设计保持一样,但体积仅有2KB。npminstalldayjs基本用法importdayjsfrom'dayjs'dayjs().format('YYYY-MM-DDHH:mm')//=>2022-01-0315:06dayjs('2022-1-315:06').toDate()//=>......
  • 浅谈 JSON 对象和 FormData 相互转换
    前言大家都知道,前端在和后台进行交互联调时,肯定避免不了要传递参数,一般情况下,params在get请求中使用,而post请求下,我们有两种常见的传参方式:JSON对象格式和formData格式,但是一些场景是需要我们对这两种数据格式进行转换的,例如表单提交,有些是JSON对象格式的数据,有些是F......
  • js继承
    继承extend构造函数的应用当多个构造函数需要使用一些共同的方法或者属性的时候,我们需要把这些共同的东西拿出来,单独书写一个构造函数,让其他的构造函数去继承自这个公共的构造函数概念:让B构造函数的实例能够使用A构造函数的属性和方法,我们管B构造函数叫做A构造函数的子类,A构造......
  • redis 使用主从机制复制数据
    查看主从情况127.0.0.1:6379>inforeplication#Replicationrole:masterconnected_slaves:0master_repl_offset:12539repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0建立主从(在备机操作)注意,如果让有数据的......