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

在js中实现两个对象合并,若重复以第一个对象中的数据为准

在JavaScript中,你可以使用Object.assign()或者使用扩展运算符…来实现两个对象的组合,其中如果第一个对象中已经存在第二个对象的字段,则以第一个对象的字段为准。下面是这两种方法的具体实现:

方法一:使用Object.assign()

const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = { b: 4, d: 5 };const combined = Object.assign({}, obj2, obj1);console.log(combined); // 输出: { b: 2, d: 5, a: 1, c: 3 }

方法二:使用扩展运算符

const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = { b: 4, d: 5 };const combined = { ...obj2, ...obj1 };console.log(combined); // 输出: { b: 2, d: 5, a: 1, c: 3 }

解释

  • 在这两种方法中,首先将第二个对象的字段和值展开到新的对象中,然后将第一个对象的字段和值展开。这种顺序确保如果两个对象中有相同的字段,后出现的(即第一个对象中的值)会覆盖前面的值。

  • Object.assign()会将所有参数对象的属性拷贝到第一个参数对象中,因此可以通过传入一个空对象{}作为第一个参数来保持原始对象不被修改。

  • 扩展运算符…提供了一种简洁的语法来实现对象的合并,并且也可以很好地维护代码的可读性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【机器学习】卷积神经网络简介
  • Android控件(示例)
  • 生成iOS LaunchImage脚本
  • “服务之巅:Spring Cloud中SLA监控与管理的艺术“
  • 【JavaEE】初步认识多线程
  • 【论文泛读】ZKML: An Optimizing System for ML Inference in Zero-Knowledge Proofs
  • springboot自定义starter
  • 【漏洞复现】某赛通数据泄露防护(DLP)系统 NetSecConfigAjax SQL注入漏洞
  • docker docker-compose创建容器并运行时发现redis.conf: Is a directory
  • springboot+neo4j的demo
  • 【论文分享】基于非参数方法和无所不在的兴趣点数据的子中心识别——以284个中国
  • tianai-captcha SpringBoot 行为验证码 支持滑动、旋转、文字点选等
  • 线程池概述
  • 在 FastAPI 项目中使用 Python 注解类型实现通用返回结构
  • docker的基本管理和应用
  • canvas 高仿 Apple Watch 表盘
  • hadoop集群管理系统搭建规划说明
  • js对象的深浅拷贝
  • PhantomJS 安装
  • PHP面试之三:MySQL数据库
  • unity如何实现一个固定宽度的orthagraphic相机
  • use Google search engine
  • vue-loader 源码解析系列之 selector
  • 阿里云前端周刊 - 第 26 期
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 对超线程几个不同角度的解释
  • 对象引论
  • 构造函数(constructor)与原型链(prototype)关系
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 记一次删除Git记录中的大文件的过程
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 全栈开发——Linux
  • 软件开发学习的5大技巧,你知道吗?
  • 设计模式(12)迭代器模式(讲解+应用)
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 一天一个设计模式之JS实现——适配器模式
  • nb
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #Linux(权限管理)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #数学建模# 线性规划问题的Matlab求解
  • (1)bark-ml
  • (23)Linux的软硬连接
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)计算机毕业设计ssm电影分享网站
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)Sql Server 保留几位小数的两种做法
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程