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

news/2024/4/19 13:44:04/文章来源:https://blog.csdn.net/mq1314520_zhl/article/details/136506341
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.luyixian.cn/news_show_997148.aspx

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

相关文章

【unity实战】事件(Event)的基本实战使用

文章目录 最终效果前言一、素材二、角色金币交互1. 拾取金币2. 显示金币数UI 完结 最终效果 前言 之前我们介绍过委托的用法&#xff0c;具体可以跳转&#xff1a;【unity小技巧】委托&#xff08;Delegate&#xff09;的基础使用和介绍 这期来讲讲事件&#xff0c;使用你会发…

Java线程状态解析:多线程编程指南

&#x1f31f; 欢迎来到 我的博客&#xff01; &#x1f308; &#x1f4a1; 探索未知, 分享知识 !&#x1f4ab; 本文目录 &#x1f31f;1. 引言&#x1f31f;2. Java线程的生命周期&#x1f4a1;2.1 <font color "skyblue">新建&#xff08;New&#xff09;&…

网络安全-appcms-master

一、环境 gethub上面自己找appcms-master 二、分析一下源码以及闯关思路 首先是有一个函数循环以及函数过滤&#xff0c;我们的post会将我们所传的所有val值去进行一个循环&#xff0c;之后通过htmlspecialchars这个函数进行过滤和转换所以val值不能通过单双引号闭合注入的方…

HarmonyOS NEXT应用开发案例——全屏登录页面

全屏登录页面 介绍 本例介绍各种应用登录页面。 全屏登录页面&#xff1a;在主页面点击跳转到全屏登录页后&#xff0c;显示全屏模态页面&#xff0c;全屏模态页面从下方滑出并覆盖整个屏幕&#xff0c;模态页面内容自定义&#xff0c;此处分为默认一键登录方式和其他登录方…

ospf虚链路实验简述

1、ospf虚链路实验简述 ospf虚链路配置 为解决普通区域不在骨干区域旁&#xff0c;通过配置Vlink-peer实现不同区域网络设备之间建立逻辑上的连接。 实验拓扑图 r1: sys sysname r1 undo info enable int loopb 0 ip add 1.1.1.1 32 ip add 200.200.200.200 32 quit int e0/0/…

蓝桥杯物联网竞赛_STM32L071_11_知识体系的查漏与补缺

太久没学单片机了&#xff0c;再重新过一遍查漏补缺&#xff0c;对其中之前没怎么在意的&#xff0c;而现在又发觉的问题进行再分析与补充 1. debug serial wire是干什么用的 这个东西我勾选不勾选都对我的程序没有什么影响&#xff0c;我很好奇是干什么用的&#xff0c;网上查…

什么样的项目适合Web自动化测试

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

好物周刊#43:设计素材下载

https://yuque.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. frp 一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c…

浅谈Linux进程隐藏

浅谈Linux进程隐藏 文章目录 浅谈Linux进程隐藏前言环境变量的绕过常用的命令在哪里环境变量的调用前置知识的了解Netstat伪装怎么去甄别 LD_PRELOAD简单实例check.c重载函数设置LD_PERLOAD删除环境变量LD_PERLOAD PS的隐藏readdir函数如何HOOK编译并验证 LD_PRELOAD的其他利用…

【java】后序遍历二叉树

采用递归方式实现 节点类 public class Node {private int value;//父节点private Node fNode;//左节点private Node left;//右节点private Node right;//是否已经打印过private boolean sign false;public Node() {}public boolean isSign() {return sign;}public void setS…

【Leetcode每日一刷】数组|704. 二分查找、27. 移除元素

力扣每日刷题 一、704. 二分查找1.1、题目1.2、解题思路1.3、代码实现——C1.4、 总结&易错 二、27. 移除元素2.1&#xff1a;题目2.2、解题思路2.3、代码实现——C1.4、 总结&易错 一、704. 二分查找 1.1、题目 704. 二分查找 1.2、解题思路 题型&#xff1a;数组…

每日五道java面试题之springMVC篇(一)

目录&#xff1a; 第一题. 什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f;第二题. Spring MVC的优点第三题. Spring MVC的主要组件&#xff1f;第四题. 什么是DispatcherServlet?第五题. 什么是Spring MVC框架的控制器&#xff1f; 第一题. 什么是S…

链路负载均衡之全局选路策略

一、全局选路策略概念 当到达目的网络有多条等价路由或者缺省路由时&#xff0c;FW通过不同的智能选路方式动态选择最优链路。 二、全局选路策略的智能选路方式 为了满足不同的需求&#xff0c;华为FW支持四种智能选路方式&#xff0c;管理员可以根据设备和网络的实际情况进…

贪心 Leetcode 763 划分字母区间

划分字母区间 Leetcode 763 学习记录自代码随想录 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返…

JavaEE之volatile关键字

一.内存可见性问题 什么是内存可见性问题 计算机运行的程序/代码&#xff0c;往往需要访问数据。这些数据往往存在于内存中。 cup使用此变量时&#xff0c;就会把内存中的数据先读出来&#xff0c;加载到cpu寄存器中&#xff0c;再去参与运算。 但是&#xff0c;关键是cpu读…

Stable Diffusion V3测评

1.引言 3月5号&#xff0c;Stability AI发布了介绍Stable Diffusion V3的研究论文&#xff0c;链接地址&#xff1a;戳我 这是目前他们发布的最先进、功能最强大的图像生成器&#xff0c;与一年多前发布的令人印象深刻的 Stable Diffusion V2.1 相比有了大幅升级。SD3所带来的…

分段线性化问题探析

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

【贪心算法】专题练习二

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;买卖股票的最佳时机&#x1f449;&…

数据解读乡村发展!专家详解 2024 年(第 17 届)中国大学生计算机设计大赛大数据主题赛赛题

2024 年&#xff08;第 17 届&#xff09;中国大学生计算机设计大赛大数据主题赛“数据解读乡村发展”赛题已于和鲸平台正式开赛&#xff0c;一月来&#xff0c;已有来自全国超百所高校的优秀本科生积极响应大赛号召完成报名。 为进一步使广大师生对于赛题主旨形成更清晰的认知…

lanqiao:合根植物

题目描述&#xff1a; 代码实现&#xff1a;