首页 > 其他分享 >js递归简易深拷贝

js递归简易深拷贝

时间:2023-06-19 15:24:50浏览次数:38  
标签:obj 递归 objClone js let result key 拷贝 b1

let obj={
    a:1,
    b:{
        b1:1,
        b2:2
    },
    c:[1,2,3]
}
function deepClone(obj){
    let result=Array.isArray(obj)?[]:{}
    for(let key in obj){
        if(obj.hasOwnProperty(key)){
            if(obj[key]&&typeof obj[key]=='object'){
                result[key]=deepClone(obj[key])
            }else{
                result[key]=obj[key]
            }
        }
    }
    return result
}
let objClone=deepClone(obj)
objClone.b.b1='b1'
objClone.c=[4,5,6]
console.log("obj:",obj);
console.log("objClone:",objClone);

标签:obj,递归,objClone,js,let,result,key,拷贝,b1
From: https://www.cnblogs.com/772330747wh/p/17491236.html

相关文章

  • (二)JS数据类型、数据类型检测、数据类型转换、运算符、操作网页元素
    一、数据类型【JS的基本数据类型有哪些?基本数据类型和引用数据类型的区别】  二、数据类型检测 三、数据类型转换【隐式转换、强制转换】  四、运算符  五、操作网页元素 ......
  • "this"关键字在js中的工作原理
    在js中,关键字“”this“”用于引用当前执行代码的上下文对象。它的工作原理是根据函数的调用方式来确定其绑定的值。它的值会根据函数的调用方式而变化。下面解释几种常见的"this"绑定规则:1.默认绑定:“this”默认绑定到全局对象(在浏览器环境中是window对象,在Node.js中是global......
  • Turndown 源码分析:四、`turndown.js`
    importCOMMONMARK_RULESfrom'./commonmark-rules'importRulesfrom'./rules'import{extend,trimLeadingNewlines,trimTrailingNewlines}from'./utilities'importRootNodefrom'./root-node'importNodefrom'......
  • vite+vue3项目中使用 lottie 动画,如何在 template 中直接使用本地 json 文件路径
    安装lottie-webyarnaddlottie-web封装 lottie组件<template><divref="animation":style="{width,height}"></div></template><script>import{defineComponent,ref,onMounted}from'vue'......
  • nodejs 伪全局变量模块
    使用这个文件可以实现不同文件中读写变量,适合当做共享变量文件名:globals.tsletglobals:any={myGlobal:{value:'canbeanytype:String,Array,Object,...'},aReadonlyGlobal:{value:'thisvalueisreadonly',protected:......
  • app直播源代码,JS生成随机数,生成指定位数的随机数
    app直播源代码,JS生成随机数,生成指定位数的随机数<html><script> //获取指定位数的随机数 functiongetRandom(num){  letrandom=Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,num-1)); } //调用随机数函数生成10位数的随机......
  • auto.js自动化手机脚本初始配置
    软件选择:auto.js8.0pro版本(对比4.0版本有阉割,微信支付宝不能点)有两种模式:客户端模式服务器模式auto.js4.0版本有一种模式:客户端模式设备和电脑连接:手机:服务器模式:手机和电脑在同一局域网下相互连接。(手机电脑同wifi远程连接,稳定)客户端模式:电脑连接以太网(不是虚拟机的......
  • JSP连接数据库大全
    JSP连接数据库大全一、jsp连接Oracle8/8i/9i数据库(用thin模式)testoracle.jsp如下:<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><body><%Class.forName(......
  • Three.js教程:动画渲染循环
    推荐:将NSDT场景编辑器加入你的3D工具链其他系列工具:NSDT简石数字孪生动画渲染循环threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。请求动画帧window.requestAnimationFrame//requestAnimationFrame实现周期性循环执行//requestAnimationF......
  • 关于ASP.NET.CORE中的Failed to read parameter "string param" from the request bod
    先上报错信息Microsoft.AspNetCore.Http.BadHttpRequestException:Failedtoreadparameter"stringparam"fromtherequestbodyasJSON.--->System.Text.Json.JsonException:'s'isaninvalidstartofavalue.Path:$|LineNumber:0|By......