2022-12-27 使用lodash库实现两个非空对象的深拷贝并输出这两个对象的并集

2023-11-05

问题描述

遇到这样一个题,如下

    const a = {
        fruits: ['apple', 'banana'],
        series: {
            apple: ['C'],
            banana: ['A', 'B'],
        }
    };
    const b = {
        fruits: ['banana', 'orange'],
        animals: ['pig'],
        series: {
            banana: ['B', 'C'],
            orange: ['A'],
        }
    };

要求输出:

    { 
	    fruits: ['apple', 'banana', 'orange'], 
	    animals: ['pig'],
	    series: { 
	    apple: ['C'], 
	    banana: ['A', 'B', 'C'],
	    orange: ['A'], 
    }

使用各种深拷贝的方法都不行,只会覆盖,并不会有取并集这么一个效果

解决方案

使用lodash库中的merge函数
引入lodash库(在线地址)

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>

使用merge函数

    console.log(_.merge(a, b));

输出结果:
在这里插入图片描述

后续

  • 了解一下这个lodash库的其他方法(防抖,去重等等)
  • 复习深拷贝的各种实现
  • 尝试使用原生js写一个函数,实现上述需求
    (目前的一个思路是对子数组去重,对子对象递归)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022-12-27 使用lodash库实现两个非空对象的深拷贝并输出这两个对象的并集 的相关文章

随机推荐

  • idea properties配置文件中的中文显示为unicode转中文显示

    一 前言 如图所示 有时候我们项目里的properties配置文件中的中文显示为unicode编码格式如下图所示 无法查看其真正意思 有的人会找unicode转换工具查看 这样很麻烦 有一个好办法 二 步骤 1 通过Settings显示成中
  • 在VUE中使用ElementUI的常用组件

    Layout布局 ElementUI将一行分为24栏 通过
  • Qt之信号与槽

    目录 信号与槽的概念 实现对象与对象之间的通信 信号 槽 信号与槽的连接 1 连接方式 2 连接规则 3 连接类型 信号与槽的概念 实现对象与对象之间的通信 当一个对象发生了改变会发送一个信号通知另一个对象执行一个函数 这个函数被称为槽 信
  • img标签的onerror事件

    有时 img标签中的src图片加载失败 原来的图片位置会出现一个碎片图标 用户体验会下降 通过百度 可以给img标签加背景图片 代码如下 headLogo img display block width 270px height 60px
  • mmdetection结果可视化

    import os from mmdet apis import init detector inference detector config file home lgh Desktop ours config py checkpoint
  • 使用Nvidia Jetson TX2进行人脸检测

    环境 Jetson TX2 JetPack 3 1 构建 1 下载代码 git clone https github com AastaNV Face Recognition 2 进入Face Recognition文件夹 cd Face
  • Nginx停止服务和各种命令

    1 停止Nginx服务的四种方法 从容停止服务 这种方法较stop相比就比较温和一些了 需要进程完成当前工作后再停止 nginx s quit 立即停止服务 这种方法比较强硬 无论进程是否在工作 都直接停止进程 nginx s stop s
  • k-均值聚类简介

    k 均值聚类 将训练集分成k个靠近彼此的不同样本聚类 因此我们可以认为该算法提供了k 维的one hot编码向量h以表示输入x 当x属于聚类i时 有hi 1 h的其它项为零 k 均值聚类提供的one hot编码也是一种稀疏表示 因为每个输入
  • C编程实例

    1 任意输入 3 个整数 编程实现对这 3 个整数由小到大进行排序 实现过程 1 定义数据类型 本实例中 a b c t 均为基本整型 2 使用输入函数获得任意 3 个值赋给 a b c 3 使用 if 语句进行条件判断 如果 a 大于 b
  • python dict无需判断key存在即可追加写入

    使用dict setdefault 可设置一个默认值 如果key已存在 就不会有其他操作 借此我们可以不用在追加数据时判断key的存在 my dict 建立一个空字典 my dict setdefault key 设置默认键 print a
  • mysql实习报告总结_MYSQL实训心得

    随时光游走 阳光穿过树叶的间隙 我们重新踏入这座美丽的校园 首先迎接我们的便是为时一周的 MYSQL 实训 在这短短的一周内 我们获益匪浅 在实训的开始 我们小组分析了老师给出的两个任务 然后一致决定研究第一个任务 我们首先讨论了处理任务的
  • 【手把手教你】使用pyfinance进行证券收益分析

    pyfinance简介 在查找如何使用Python实现滚动回归时 发现一个很有用的量化金融包 pyfinance 顾名思义 pyfinance是为投资管理和证券收益分析而构建的Python分析包 主要是对面向定量金融的现有包进行补充 如py
  • 汇编语言与微机原理(1)基础知识

    前言 1 本人使用的是 王爽老师的汇编语言第四版和 学校发的微机原理教材配合学习 2 推荐视频教程 通俗易懂的汇编语言 王爽老师的书 贺老师C站账号网址 3 文章配套资料 Github仓库链接 4 本文是介绍8086汇编语言 汇编语言简介
  • 基于51单片机的心率计脉搏体温测量仪WIFI传输APP设计方案原理图

    系统的功能分析及体系结构设计 末尾附文件 系统功能分析 本系统采用STC89C52单片机 LCD1602液晶 脉搏传感器 温度传感器DS18b20 WIFI模块电路设计而成 1 LCD1602液晶第一行显示设计信息 第二行显示心率和温度 2
  • 嵌入式软件开发之程序分层(二)

    前言 该内容是工作一年来通过上网或其他方式不断搜索 实践 总结出来的嵌入式软件开发经验 本文仅适用于单片机的裸机开发 希望能帮到正在学习这方面的朋友 如有不好的地方 请多多见谅 在嵌入式软件开发过程中 在程序架构的搭建完成之后 为了提高项目
  • 深度学习速成(5)torch.nn.Module类

    nn Module 是PyTorch中的一个基础类 nn即是Neural Networks 用于构建神经网络模型 所有的神经网络模型都必须继承于nn Module类 并实现 forward 方法来定义模型的前向传播过程 nn Module类
  • nginx 配置静态网页

    nginx 配置静态网页 进入配置文件 etc nginx conf d default conf 配置的时候小伙伴们一定要记得先备份一份文件 这样方便后续出错恢复 server listen 端口号 server name IP loca
  • 解决Springboot GET请求参数过长的情况

    项目场景 使用Spring Boot进行项目开发 解决Springboot GET请求参数过长的情况 问题描述 报错信息 Springboot GET请求参数过长抛出异常 Request header is too large 的问题 现象
  • 华为OD机试 - 冠亚军排名,奖牌榜排名(Java)

    题目描述 2012伦敦奥运会即将到来 大家都非常关注奖牌榜的情况 现在我们假设奖牌榜的排名规则如下 首先gold medal数量多的排在前面 其次silver medal数量多的排在前面 然后bronze medal数量多的排在前面 若以上
  • 2022-12-27 使用lodash库实现两个非空对象的深拷贝并输出这两个对象的并集

    问题描述 遇到这样一个题 如下 const a fruits apple banana series apple C banana A B const b fruits banana orange animals pig series ba