js 将对象转换为数组,两个对象的属性相同合并相加

1、定义两个对象,属性相同的值相加,并将值赋值为数组中对象属性相同的
  • 定义数组
var titleDate = [{name: 'JKJInputQty',field: 'restQty',icon: config.ossUrl + '/afl-data-screen/images/icon-all-input.png',value: 0,titleNames: 'JKJInputQty',span: 3}, {name: 'JKJOutputQty',field: 'restQty',icon: config.ossUrl + '/afl-data-screen/images/icon-takeOut.png',value: 0,titleNames: 'JKJOutputQty',span: 3}, {name:'PEOutputQty',field: 'restQty',icon: config.ossUrl + '/afl-data-screen/images/icon-output.png',value: 0,titleNames: 'PEOutputQty',span: 3}, {name: 'abnormalCause',field: 'restQty',icon: config.ossUrl + '/afl-data-screen/images/icon-search.png',cause: '',titleNames: 'AbnormalCause',span: 5}]
  • 定义两个对象
var ProductDataByDayofLine1= {"JKJInputQty": 3276,"JKJOutputQty": 9890,"PEOutputQty": 8442,"DROutputQty": 10584,"JKJOutputDifferenceQty": 6614,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 2142,"AbnormalCause": "JKJ产出数量大于投入数量DR产出数量大于PE产出数量"}
var ProductDataByDayofLine2= {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": ""},
  • 将连个对象合并相加
const keys = Object.keys(ProductDataByDayofLine1)
keys.forEach((name, index) => {titleDate.forEach(item => {if (name === item.titleNames && index < 4) {item.value = Number(ProductDataByDayofLine1[name]) + Number(ProductDataByDayofLine2[name])}if (name === item.titleNames && item.titleNames === 'JKJOutputDifferenceQty') {// Number() 将值转换类型为数字类型const a = Number(ProductDataByDayofLine1[name]) + Number(ProductDataByDayofLine2[name])const b = Number(ProductDataByDayofLine1.PEOutputDifferenceQty) + Number(ProductDataByDayofLine2.PEOutputDifferenceQty)const c = Number(ProductDataByDayofLine1.DROutputDifferenceQty) + Number(ProductDataByDayofLine2.DROutputDifferenceQty)item.value = a + b + c}//特定的判断条件去添加到titleDate数组属性中if (name === item.titleNames && item.titleNames === 'AbnormalCause') {item.cause = res.ProductDataByDayofLine1[name] + ProductDataByDayofLine2[name]}})
})
2、将对象转换为数组并合并对象

数据格式为

var ProductDataByHourofLine1= {"HourOne": {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": null},"HourTwo": {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": null},"HourThree": {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": null},"HourFour": {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": null},}var ProductDataByHourofLine2= {"HourOne": {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": null},"HourTwo": {"JKJInputQty": 0,"JKJOutputQty": 0,"PEOutputQty": 0,"DROutputQty": 0,"JKJOutputDifferenceQty": 0,"PEOutputDifferenceQty": 0,"DROutputDifferenceQty": 0,"AbnormalCause": null}//......后面定义省略
}
  • 转换对象并添加到新的数组中
let arr=[]
let arr2=[]
Object.entries(ProductDataByHourofLine1).forEach((item, index) => {if (item[0] === 'HourOne') {item[1].TimePeriod = '00:00 ~ 01:00'arr.push(item[1])}if (item[0] === 'HourTwo') {item[1].TimePeriod = '01:00 ~ 02:00'arr.push(item[1])}if (item[0] === 'HourThree') {item[1].TimePeriod = '02:00 ~ 03:00'arr.push(item[1])}if (item[0] === 'HourFour') {item[1].TimePeriod = '03:00 ~ 04:00'arr.push(item[1])}
})Object.entries(ProductDataByHourofLine2).forEach((item, index) => {if (item[0] === 'HourOne') {item[1].TimePeriod = '00:00 ~ 01:00'arr2.push(item[1])}if (item[0] === 'HourTwo') {item[1].TimePeriod = '01:00 ~ 02:00'arr2.push(item[1])}if (item[0] === 'HourThree') {item[1].TimePeriod = '02:00 ~ 03:00'arr2.push(item[1])}if (item[0] === 'HourFour') {item[1].TimePeriod = '03:00 ~ 04:00'arr2.push(item[1])}
})
  • 将两个数组中对象相同的合并相加 到某一个数组的属性上
arr.forEach((item, index) => {var item2 = arr2[index]var a = Object.keys(item)var b = Object.keys(item2)a.forEach((x, index) => {if (x === b[index] && x !== 'TimePeriod') {item[x] = Number(item[x]) + Number(item2[x])}})})

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

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

相关文章

分布式概念-理论篇

分布式是一个描述计算机系统或应用架构的术语&#xff0c;它指的是将一个大型的系统或服务拆分成多个小的、独立的子系统或服务&#xff0c;这些子系统或服务可以在不同的计算机或服务器上运行&#xff0c;并通过网络进行通信和协作&#xff0c;从而共同完成整个系统的功能。 …

C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码

1 回文串 “回文串”是一个正读和反读都一样的字符串&#xff0c;初始化标志flagtrue&#xff0c;比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串&#xff0c;如果该字符串的每个子字符串都是回文的&#xff0c;那么该字符串的分区就是回文分区。…

DataLoader

import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter# 准备的测试数据集 数据放在了CIFAR10文件夹下test_data torchvision.datasets.CIFAR10("./CIFAR10",trainFalse, transformtorchvision.transfor…

Qt入门(一)Qt概述

Qt是什么&#xff1f; Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库&#xff0c;还包括诸多配套的开发工具如QtCreater&#xff0c;GUI Designer。Qt本身是由C开发的&#xff0c;但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术&#xff0c;最重要的是…

PDF控件Spire.PDF for .NET【安全】演示:加密 PDF 文档

加密PDF是人们常用的保护PDF的方法。无论对于公司还是个人&#xff0c;使用PDF加密来设置一些限制都是必不可少的。为了使PDF文档可供未经授权的用户阅读但无法修改&#xff0c;加密的PDF文档需要两个密码&#xff1a;所有者密码和用户密码。本节将特别介绍一种通过 Spire.PDF …

从mysql 数据库表导入数据到elasticSearch的几种方式

从MySQL数据库导入数据到Elasticsearch有几种方式&#xff0c;主要包括以下几种&#xff1a; 1. 使用Logstash&#xff1a; Logstash是一个开源的数据收集引擎&#xff0c;可以用来从不同的数据源导入数据到Elasticsearch。它具有强大的数据处理能力和插件生态系统&…

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

scanf从缓冲区读值、检查缓冲区与读取失败

先看一段代码&#xff1a;代码① #include <Windows.h> int main() { int n 0; while (scanf( "%d", &n) ! EOF) // 如果输入a死循环 { printf( "b\n"); //getchar(); Sleep(1000); } return 0; } 此程序的输出结果是 输出…

透明多级分流系统(用户端缓存和负载均衡)

部件考虑 有些设备位于客户端或者网络边缘&#xff0c;能够迅速响应用户请求&#xff0c;避免给cpu和数据库带来压力&#xff0c;比如&#xff0c;本地缓存&#xff0c;内容分发网络&#xff0c;反向代理等。 有些设备处理能力能够线性扩展&#xff0c;易于伸缩&#xff0c;应…

探索程序员职业迷宫:选择适合自己的职业赛道

作为现代社会中备受青睐的职业之一&#xff0c;程序员的职业赛道就如同一座错综复杂的迷宫&#xff0c;充满了挑战与机遇。在这个迷宫中&#xff0c;有着前端的绚丽花园、后端的神秘洞穴以及数据科学的深邃密室&#xff0c;每一条路径都蕴藏着无限可能和发展空间。而如何选择适…

代码随想录Day22 | Leetcode39 组合总和、Leetcode40 数组总和II | Leetcode131 分割回文串

上题 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 40. 组合总和 II - 力扣&#xff08;LeetCode&#xff09; 131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 第一题 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找…

ChatGPT聊天机器人数据隐私和安全问题

ChatGPT是否安全使用&#xff1f; 是的&#xff0c;ChatGPT是安全的&#xff0c;因为它无法对你或你的计算机造成任何直接损害。由于网页浏览器和智能手机操作系统都使用了沙箱技术&#xff0c;因此ChatGPT无法访问你设备的其余部分。换句话说&#xff0c;当你使用ChatGPT应用程…

node.js中path.join() 和 path.resolve()

《Node.js》path.resolve与path.join的区别与作用_js path.resolve-CSDN博客

Sentinel 面试题及答案整理,最新面试题

Sentinel的流量控制规则有哪些&#xff0c;各自的作用是什么&#xff1f; Sentinel的流量控制规则主要包括以下几种&#xff1a; 1、QPS&#xff08;每秒查询量&#xff09;限流&#xff1a; 限制资源每秒的请求次数&#xff0c;适用于控制高频访问。 2、线程数限流&#xf…

【异常处理】Mybatis报错 source is null for getProperty(null, “length“)

发现问题 <select id"listArticle" resultType"top.ambtwill.blog.dao.pojo.Article">select * from ms_article<where>11<if test"categoryId ! null">and category_id#{categoryId}</if><if test"tagId ! nul…

MacOS安装反编译工具JD-GUI 版本需要1.8+

Java Decompiler http://java-decompiler.github.io/ 将下载下来的 jd-gui-osx-1.6.6.tar 解压&#xff0c;然后将 JD-GUI.app 文件拷贝到 Applications 应用程序目录里面 1.显示包内容 2.找到Contents/MacOS/universalJavaApplicationStub.sh 3.修改sh文件 内容修改为下面…

微服务之商城系统

一、商城系统建立之前的一些配置 1、nacos Nacos是一个功能丰富的开源平台&#xff0c;用于配置管理、服务发现和注册、健康检查等&#xff0c;帮助构建和管理分布式系统。 在linux上安装nacos容器的命令&#xff1a; docker run --name nacos-standalone -e MODEstandalone …

07 - 镜像管理之:镜像优化

1 为什么要做镜像优化? 1&#xff09;随着我们对docker镜像的持续使用&#xff0c;在此过程中如果不加以注意并且优化&#xff0c;镜像的体积会越来越大&#xff0c;很多时候我们在使用docker部署应用时&#xff0c;会发现镜像的体积可能都会在1G以上。 2&#xff09;镜像体积…

08 视图

视图 视图概念 视图是存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色。其实视图可以理解为一个表或多个表中导出来的表&#xff0c;作用和真实表一样&#xff0c;包含一系列带有行和列的数据 视图中&#xff0c;用户可以使用SELECT语句查询数据&#xff0…

Fabric V2.5 通用溯源系统——应用前端部分设计及简易二次开发

本节对Fabric V2.5 通用溯源系统的前端部分做一个简单的介绍。包括目录结构、文件作用简述、用户注册登录实现、农产品信息上链溯源实现的介绍。同时提供了简易二次开发的教程(面向需要在短时间内二次开发),将本项目修改为商品溯源项目,仅修改前端部分。本节内容需要订阅《…