当前位置: 首页 > article >正文

前端数据拷贝(浅拷贝、深拷贝)

浅拷贝

1 直接赋值

2 扩展运算符(...)

3 abject.assign()

Object.assign({}, obj);

4 slice和concat

slice 截取数组

concat 拼接数组

深拷贝

JSON.parse(JSON.stringify(待拷贝对象))

使用第三方库 Lodash

const _ = require('lodash');

let obj = {
    name: 'demo',
    age: 26
}

let obj2 = _.cloneDeep(obj);
obj2.name = "demo_new";

console.log(obj); // {name: "demo", age: 26}
console.log(obj2); // {name: "demo_new", age: 26}

3 手写一个深拷贝

function deepClone (obj) {
    if (typeof obj !== 'object' || obj == null) {
        return obj;
    }
    
    let deepCloneObj = Array.isArray(obj) ? [] : {}
    
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            deepCloneObj[key] = deepClone(obj[key]);
        }
    }
    
    return deepCloneObj;
}

 


http://www.kler.cn/a/349670.html

相关文章:

  • maven、npm、pip、yum官方镜像修改文档
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(动态菜单组件实现)
  • wordpress每隔24小时 随机推荐一个指定分类下的置顶内容。
  • dify实现原理分析-rag-检索(Retrieval)服务的实现
  • JVM栈溢出线上环境排查
  • FireFox | Google Chrome | Microsoft Edge 禁用更新 final版
  • Ubuntu里彻底卸载UHD
  • PHP WebSocket
  • nginx代理内网服务器8080端口
  • 【jQuery】jQuery基本操作(样式操作 内容操作 节点操作 属性操作 节点遍历)
  • 作为企业的管理者,应该怎样面对信息安全等级测评这项国家政策?
  • 从纸质到云端:3C产品说明书的电子化进程与影响
  • (Java企业 / 公司项目)阿里云aliyun-对象存储OSS详细从开通到配置(微服务架构选用)
  • 通过华为鲲鹏认证发行上市的集成平台产品推荐
  • 2.2机器学习--逻辑回归(分类)
  • 鸿蒙--设置项布局
  • .net core 实现异步的方式有哪些?
  • Python 中 NameError 全局名称未定义
  • RHCE的学习(1)
  • 10.12Python数学基础-矩阵(上)
  • PLC数据如何高效传输到MongoDB?
  • lspci | grep VGA
  • Flink作业骨架结构
  • 统计好三元组(c语言)
  • Web集群服务-代理和负载均衡
  • 大商创(移动端) -- day02