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

js遍历后端返回的集合将条件相同的放入同一个数组内

项目场景:

echarts折线图需要根据条件动态展示多条不同曲线


解决方案:

后端直接将使用sql将数据查询出来返回即可,因为我这里不是Java使用的C#不是很熟练后台不好写逻辑,所以在前端js完成的

代码如下:

 function createline(villagename, buildingname, unitname, roomname, startime, stoptime) {// console.log("roomname: "+roomname)//$("#demo").empty();var myChart = echarts.init(document.getElementById('demo'), myEchartsTheme);myChart.clear();var tempindoor = [],tempset = [],tempwaterin = [],tempwaterout = [];$.ajax({type: 'post',url: '../AJAXHandler.ashx',data: {"Method": "GetData","limit": 99999,"page": 1,"VillageName": villagename,"BuildingName": buildingname,"UnitName": unitname,"RoomName": roomname,"startime": startime,"stoptime": stoptime},success: function (res) {var xData = [];//console.log("res: "+res);var json = $.parseJSON(res);json = json.data;for (var i = 0; i < json.length; i++) {tempindoor.push(json[i].TMP_INDOOR);//console.log("tempindoor: "+tempindoor);tempset.push(json[i].TMP_SET);tempwaterin.push(json[i].TEMP_WATER_IN);tempwaterout.push(json[i].TEMP_WATER_OUT);xData.push(new Date(json[i].RTime).format('yyyy-MM-dd hh:mm:ss'));}
/**这里定义新的数组将查到的数据通过遍历存到新数组内,然后根据判断是否有相同的数据,如果没有就走if内的语句存入数组内,如果有相同的就走else内的语句,之后将数据存到map里根据条件去展示符合的数据,然后将这个map存到echarts渲染的部分的数组内 就可以做到动态展示了**/const result = [];json.forEach((item) => {const index = result.findIndex((r) => r.room === item.room);if (index === -1) {result.push({ room: item.room, names: [item.TMP_INDOOR] });} else {result[index].names.push(item.TMP_INDOOR);}});//console.log(result);const legend = result.map(item => item.room); // 图例const arr = result.map(item => ({ // 数据name: item.room,type: "line",data: item.names}));//手机适配if (window.screen.width < 1000) {var legends = {x: '100px',//data: ['室内温度',  '设定温度', '进水温度', '回水温度']data: ['室内温度'],textStyle: {color: '#009688'}};} else {var legends = {x: 'center',//data: ['室内温度',  '设定温度', '进水温度', '回水温度']data: ['室内温度'],textStyle: {color: '#009688'}};}var option = createoption('单位:℃', xData, legends, arr);myChart.setOption(option, true);//EChars图手机适配window.onresize = myChart.resize;},error: function () {//alert("折线图报错!");}});tempindoor = [], tempset = [], tempwaterin = [], tempwaterout = [];}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Portraiture4.1汉化版PS磨皮插件(支持原生m1芯片m2)
  • 约翰瑟尔的故事
  • QT上位机开发(抽奖软件)
  • 听GPT 讲Rust源代码--library/panic_unwind
  • 初识RabbitMQ
  • 【react.js + hooks】useUrl 监听路由参数
  • 【Java技术专题】「入门到精通系列」深入探索Java技术中常用到的六种加密技术和代码
  • 计算机网络(1)
  • 你好2024!
  • Css基础内容
  • 迈向通用异常检测和理解:大规模视觉语言模型(GPT-4V)率先推出
  • 马尔科夫假设
  • WPF 漂亮长方体、正文体简单实现方法 Path实现长方体 正方体方案 WPF快速实现长方体、正方体的方法源代码
  • 使用JavaScript实现图片轮播效果
  • 致最后【个人】
  • [case10]使用RSQL实现端到端的动态查询
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Android 控件背景颜色处理
  • conda常用的命令
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • ES学习笔记(12)--Symbol
  • HashMap ConcurrentHashMap
  • Meteor的表单提交:Form
  • React-flux杂记
  • Redis中的lru算法实现
  • WePY 在小程序性能调优上做出的探究
  • zookeeper系列(七)实战分布式命名服务
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 那些年我们用过的显示性能指标
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 微服务框架lagom
  • 一道闭包题引发的思考
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 正则表达式-基础知识Review
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (第61天)多租户架构(CDB/PDB)
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • *算法训练(leetcode)第四十天 | 647. 回文子串、516. 最长回文子序列
  • .net core使用ef 6
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET/C# 使窗口永不获得焦点
  • .Net小白的大学四年,内含面经
  • //TODO 注释的作用
  • /boot 内存空间不够
  • @column注解_MyBatis注解开发 -MyBatis(15)