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

JS数据处理(冒泡寻找对象里面有个Key相同的值并处理相关数据)

1.需要处理成的数据格式

[{
mpptNumber: 1,
list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvEnableStatus: 0,pvSerialNumber: 2,}]
},
{
mpptNumber: 2,
list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvEnableStatus: 0,pvSerialNumber: 3,}]
}]

2.原始数据

      "pvConfigList": [{"mpptNumber": 1,"pvSerialNumber": 1,"pvEnableStatus": 0,"pvEnableStatusStr": "0.00"},{"mpptNumber": 1,"pvSerialNumber": 2,"pvEnableStatus": 0,"pvEnableStatusStr": "0.00"},{"mpptNumber": 2,"pvSerialNumber": 1,"pvEnableStatus": 0,"pvEnableStatusStr": "0.00"},{"mpptNumber": 2,"pvSerialNumber": 3,"pvEnableStatus": 0,"pvEnableStatusStr": "0.00"}],

3.封装方法

// 格式化光伏数据
const formatePvcData = (pvConfigList) => {// 创建一个空数组来存储处理后的对象const resultArray = [];// 遍历原始数组pvConfigList.forEach((item) => {// 检查是否已经有对应的mpptNumber在resultArray中const existingObj = resultArray.find((obj) => obj.mpptNumber === item.mpptNumber);if (existingObj) {// 如果存在,则向该对象的list中添加一个新的pv配置existingObj.list.push({pvSerialNumber: item.pvSerialNumber,pvEnableStatus: item.pvEnableStatus, // 注意这里使用字符串,因为原数据是字符串checked: item.pvEnableStatus == 0 ? false : true,});} else {// 如果不存在,则创建一个新的对象并添加到resultArray中resultArray.push({mpptNumber: item.mpptNumber,list: [{pvSerialNumber: item.pvSerialNumber,pvEnableStatus: item.pvEnableStatus, // 注意这里使用字符串,因为原数据是字符串checked: item.pvEnableStatus == 0 ? false : true,},],});}});// 返回处理后的数组return resultArray;
};

4.展示效果
在这里插入图片描述

相关文章:

  • slot插槽详解及动态插槽的使用
  • 全网最详细,零基础学会AI绘画Stable Diffusion,学不会来打我!
  • 【第二套】华为 2024 年校招-硬件电源岗
  • Pandas_DataFrame读写详解:案例解析(第24天)
  • 基于Datax开发支持瀚高数据库的插件_插件开发_以及部署---国产瀚高数据库工作笔记006
  • Find My随身WiFi|苹果Find My技术与随身WiFi结合,智能防丢,全球定位
  • Python入门 2024/7/2
  • 用C语言做一个web站,富文本写入与展示,用户登录,文本目录划分
  • 计算神经网络中梯度的核心机制 - 反向传播(backpropagation)算法(1)
  • Python错误集锦:faker模块生成xml文件时提示:`xml` requires the `xmltodict` Python library
  • 通过rediss实现用户菜单智能推荐
  • 基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)
  • 慧哥Saas充电桩开源平台 V2.5.5
  • SQL经典面试题
  • PHP pwn 学习 (1)
  • angular2 简述
  • Docker下部署自己的LNMP工作环境
  • Fundebug计费标准解释:事件数是如何定义的?
  • Laravel核心解读--Facades
  • maya建模与骨骼动画快速实现人工鱼
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue 重置组件到初始状态
  • 给第三方使用接口的 URL 签名实现
  • 使用parted解决大于2T的磁盘分区
  • 使用putty远程连接linux
  • 我有几个粽子,和一个故事
  • PostgreSQL之连接数修改
  • 大数据全解:定义、价值及挑战
  • 如何用纯 CSS 创作一个货车 loader
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (笔记)M1使用hombrew安装qemu
  • (分布式缓存)Redis分片集群
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)模仿学习-完成后台管理页面查询
  • (转)LINQ之路
  • (转)甲方乙方——赵民谈找工作
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转载)从 Java 代码到 Java 堆
  • .apk文件,IIS不支持下载解决
  • .Net Core 中间件验签
  • .net framework profiles /.net framework 配置
  • ::什么意思
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [Android View] 可绘制形状 (Shape Xml)
  • [BeginCTF]真龙之力
  • [BZOJ1053][HAOI2007]反素数ant
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++]打开新世界的大门之C++入门