js合并相同结构的对象,内容不覆盖

场景

两个结构相同的对象,要将它们具备相同key的数据合并,一般的方法会导致后面覆盖前面,所以需要特殊处理。
用一个简单的demo数据作为例子。

let obj1 = {
name: [{ text: “王妃1” }, { text: “王妃2” }],
age: [{ num: “12” }, { num: “13” }],
};
let obj2 = {
name: [{ text: “秦王3” }, { text: “秦王4” }],
age: [{ num: “45” }, { num: “46” }],
};

要转换为下面这种:

{
name: [ { text: ‘王妃1’ }, { text: ‘王妃2’ }, { text: ‘秦王3’ }, { text: ‘秦王4’ } ],
age: [ { num: ‘12’ }, { num: ‘13’ }, { num: ‘12’ }, { num: ‘46’ } ]
}

代码实现:

let obj1Keys = Object.keys(obj1);
let obj2Keys = Object.keys(obj2);
let newObj = {};
obj1Keys.forEach((item) => {
if (!newObj[item]) {
newObj[item] = [];
}
newObj[item] = newObj[item].concat(obj1[item]);
});
obj2Keys.forEach((item) => {
if (!newObj[item]) {
newObj[item] = [];
}
newObj[item] = newObj[item].concat(obj2[item]);
});
console.log(newObj)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于MySQL的基本查询(多表查询等)

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE…

体验华为云对话机器人服务 CBS

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、开通…

开源的API Gateway项目- Kong基于OpenResty(Nginx + Lua模块)

Kong 是一个在 Nginx 内运行的开源 API 网关和微服务抽象层。它是用于处理 API 流量的灵活、可扩展、可插入的工具。 Kong 提供了以下功能: 用户登录:Kong 提供了多种认证插件,像 JWT、OAuth 2.0 等,可以满足用户登录需求。Toke…

CSDN年度回忆录(扫码的官方数据版本)

引言 官方搞了个活动 就是扫码 查看年度报告的 我印象中 这方面做的最好的就是 支付宝 每年都可以看到自己的钱花在哪里了 今年数据大概率清一色饮食 都汤姆花在了炒股上 这两天A股有点逆转的样子 但是我想说,不要去(他在骗你的压岁钱) …

MySQL运维实战(4.6) SQL_MODE之NO_BACKSLASH_ESCAPES

作者:俊达 在MySQL中,默认情况下,反斜杠(\)被用作转义字符,转义反斜杠(\)后一个字符;当设置NO_BACKSLASH_ESCAPES后,反斜杠(\)将不作为转义字符,而被视为普通字符。 下面…

Ubuntu22.04执行sudo apt-get update时报错:sh: 1: /usr/lib/cnf-update-db: not found

报错如下,错误原因使用的sources-list配置和系统版本不匹配 $sudo apt-get update 获取:16 http://us.archive.ubuntu.com/ubuntu jammy-updates/restricted Sources [56.6 kB] 已下载 1,006 kB&#…

CSS 实现 flex布局最后一行左对齐的方案「多场景、多方案」

目录 前言解决方案场景一、子项宽度固定,每一行列数固定方法一:模拟两端对齐方法二:根据元素个数最后一个元素动态margin 场景二、子项的宽度不确定方法一:直接设置最后一项 margin-right:auto方法二:使用:after(伪元素…

多场景建模:阿里MARIA

Multi-scenario ranking framework with adaptmulti-scenario ranking framework with adaptive feature learning 背景 多模态搜索场景支持用户通过不同模态的Query来表达多样的搜索需求。 拍照搜索(Visual Search):实拍图作为query相似商…

pyspark学习_dataframe常用操作_02

#回顾01常用操作 from pyspark import SparkSession,DataFramespark SparkSession.builder.getOrCreate()peopleDF spark.read.json("people.json")peopleDF.printSchema()#显示DataFrame的模式信息 peopleDF.show()#显示DataFrame的数据信息 peopleDF.foreach(pri…

unity 网络地址加载图片

/// <summary> /// 网络地址加载图片 /// </summary> /// <param name"url">地址</param> /// <param name"raw">图片显示位置</param> public void loadImage(string url,RawImage raw) { …

【Godot4自学手册】第六节实现人物的挥剑操作

同学们好&#xff01;本节学习一下人物挥剑操作。 一、将鼠标左键单击设为输入映射 单击项目选择项目设置&#xff0c;在添加新动作填写sword&#xff0c;然后点击添加。在动作列表中,单击sword后面的加号&#xff0c;在弹出对话框中单击鼠标左键&#xff0c;最后单击确定&am…

Flink Checkpoint 超时问题和解决办法

第一种、计算量大&#xff0c;CPU密集性&#xff0c;导致TM内线程一直在processElement&#xff0c;而没有时间做CP【过滤掉部分数据&#xff1b;增大并行度】 代表性作业为算法指标-用户偏好的计算&#xff0c;需要对用户在商城的曝光、点击、订单、出价、上下滑等所有事件进…

Linux--基础开发工具篇(1)(yum)

1.Linux 软件包管理器 yum 1.1yum是什么&#xff1f;什么是软件包&#xff1f; yum是什么&#xff1f; yum是一个软件下载安装管理的一个客户端&#xff0c;就如小米应用商店&#xff0c;华为应用商城。 Linux中软件包可能有依赖关系--yum会帮助我们解决依赖关系的问题。 什么是…

算法训练营Day51(动态规划12)

309.最佳买卖股票时机含冷冻期 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 提醒 本题加了一个冷冻期&#xff0c;状态就多了&#xff0c;有点难度&#xff0c;要把各个状态分清&#xff0c;思路才能清晰 注意初始化dp[0][0]、dp[0][1]、dp[0][2]…

使用OpenCV实现一个简单的实时人脸跟踪

简介&#xff1a; 这个项目将通过使用OpenCV库来进行实时人脸跟踪。实时人脸跟踪是一项在实际应用中非常有用的技术&#xff0c;如视频通话、智能监控等。我们将使用OpenCV中的VideoCapture()函数来读取视频流&#xff0c;并使用之前加载的Haar特征级联分类器来进行人脸跟踪。 …

GPTs 英语老师 现在不能发布为Averyone了 翻译 时态 结构 例句 一清二楚

https://chat.openai.com/g/g-l3S5WDgP7-english-teacher The crowd began to shout, but the drunk was unaware of the danger. 翻译为中文: 人群开始大声喊叫&#xff0c;但那个醉酒的人没有意识到危险。 分析时态和句子语法: 时态&#xff1a;这个句子使用的是过去时。语法…

【python】一文带你了解什么是dataclass?

为什么需要dataclass数据类 在Python 3.7&#xff08;PEP 557&#xff09;后引入一个新功能是装饰器dataclass&#xff0c;它通过自动生成特殊方法&#xff08;如__init__() 和 __repr__() ...等魔术方法 &#xff09;来简化数据类的创建。 数据类和普通类一样&#xff0c;但设…

muduo库的模拟实现——muduo库的介绍

文章目录 一、muduo库介绍二、背景知识1.epoll2.Reactor模式 三、功能模块划分1.工具部分2.Reactor部分3.TCPServer部分 一、muduo库介绍 muduo库是在Linux环境下使用C实现的一个多Reactor多线程的高性能网络服务器&#xff0c;作者陈硕&#xff0c;他还出了一本书《Linux多线…

基于差分进化算法(Differential Evolution Algorithm,DE)的移动边缘计算的任务卸载与资源调度研究(提供MATLAB代码)

一、优化模型介绍 移动边缘计算的任务卸载与资源调度是指在移动设备和边缘服务器之间&#xff0c;将部分计算任务从移动设备卸载到边缘服务器&#xff0c;并合理分配资源以提高系统性能和降低能耗。 在本文所研究的区块链网络中&#xff0c;优化的变量为&#xff1a;挖矿决策&…

热门应用滥用苹果 iPhone 推送通知,暗中窃取用户数据

移动研究人员 Tommy Mysk 近日揭露&#xff0c;部分热门应用利用 iPhone 推送通知功能秘密发送用户数据&#xff0c;这引发了用户隐私安全担忧。 许多 iOS 应用程序正在使用由推送通知触发的后台进程来收集设备的用户数据&#xff0c;从而有可能创建用于跟踪的指纹档案。 Mys…