js 表格数据处理横向变纵向数据
// 这是后台数据var dataSource = [{"saturday": 2764,"project": "过店人次","thursday": 3389,"sum": 18958,"sunday": 2364,"tuesday": 2945,"wednesday": 3452,"friday": 1398,"monday": 2646},{"saturday": 17,"project": "环比上周","thursday": 73,"sum": 205,"sunday": 9,"tuesday": 48,"wednesday": 54,"friday": -39,"monday": 43},{"saturday": -36,"project": "对比今年均值","thursday": -21,"sum": -261,"sunday": -45,"tuesday": -32,"wednesday": -20,"friday": -68,"monday": -39},{"saturday": "296 (17 - 18点)","project": "过店峰值1","thursday": "326 (10 - 11点)","sum": 2348,"sunday": "297 (9 - 10点)","tuesday": "314 (17 - 18点)","wednesday": "352 (8 - 9点)","friday": "435 (8 - 9点)","monday": "328 (18 - 19点)"},{"saturday": "289 (8 - 9点)","project": "过店峰值2","thursday": "325 (9 - 10点)","sum": 2052,"sunday": "236 (8 - 9点)","tuesday": "284 (8 - 9点)","wednesday": "299 (10 - 11点)","friday": "298 (17 - 18点)","monday": "321 (17 - 18点)"},{"saturday": "285 (9 - 10点)","project": "过店峰值3","thursday": "298 (8 - 9点)","sum": 1866,"sunday": "219 (12 - 13点)","tuesday": "260 (9 - 10点)","wednesday": "297 (11 - 12点)","friday": "272 (9 - 10点)","monday": "235 (10 - 11点)"}]// 想要的data var newData = [// 周一就是每个对象里的monday// key可以自定义的英文唯一值{'日期': '周一','过店人次': 2646,'环比上周': 43,'对比今年均值': -39,'过店峰值1': "328 (18 - 19点)",'过店峰值2': "321 (17 - 18点)",'过店峰值3': "235 (10 - 11点)"},// 以此类推 周二tuesday 周二就是每个对象里面的tuesday的{'日期': '周二 ','过店人次': 2646,'环比上周': 43,'对比今年均值': -39,'过店峰值1': "328 (18 - 19点)",'过店峰值2': "321 (17 - 18点)",'过店峰值3': "235 (10 - 11点)"},//... 34 5 6 7 合计]// 函数
//方法1
let mapData = new Map([["monday", "周一"],["tuesday", "周二"],["wednesday", "周三"],["thursday", "周四"],["friday", "周五"],["saturday", "周六"],["sunday", "周日"]])let mapData1 = new Map([["周一", "1"],["周二", "2"],["周三", "3"],["周四", "4"],["周五", "5"],["周六", "6"],["周日", "7"],["合计", "8"],])function changeAir(params) {let temp = params.projectreturn temp}for (const key in dataSource[0]) {mapData.get(key) && newData.push({'日期':key})}dataSource.forEach((item,index)=>{let temp = changeAir(item)newData.map(i=>{i[temp] = item.projectif(item.project === temp){i[temp] = item[i['日期']]}})})newData.map(item=>{item.dataName = mapData.get(item['日期'])item.enData = item['日期']item.sort = mapData1.get(item.dataName)delete item['日期']})console.log(newData)
//方法2var daobulArr = ['过店人次', '环比上周', '对比今年均值', '过店峰值1', '过店峰值2', '过店峰值3']dataSource.map((item) => {if (item.project === '过店人次') {delete item.projectfor (let keys in item) {dataArrs.push({outTotal: item[keys],dataName: test(keys).dataName,enData: keys,sort: test(keys).sort})}} else {daobulArr.map((info) => {if (item.project === info) {for (let keys in item) {dataArrs.map((fun) => {fun[`${info}`] = item[fun.enData]})}}})}})function test(key) {let contObj = {dataName: '',sort: 0}switch (key) {case 'monday':contObj.dataName = '周一'contObj.sort = 1break;case 'tuesday':contObj.dataName = '周二'contObj.sort = 2break;case 'wednesday':contObj.dataName = '周三'contObj.sort = 3break;case 'thursday':contObj.dataName = '周四'contObj.sort = 4break;case 'friday':contObj.dataName = '周五'contObj.sort = 5break;case 'saturday':contObj.dataName = '周六'contObj.sort = 6break;case 'sunday':contObj.dataName = '周日'contObj.sort = 7break;case 'sum':contObj.dataName = '合计'contObj.sort = 8break;default:break;}return contObj}
js 表格数据处理横向变纵向数据相关推荐
- oracle数据库纵向转横向,复杂SQL语句实现表中数据横向变纵向问题求解
想要实现如下结果说明如下: 以id1,id2过滤前提,根据kind把数据进行处理, 当kind=1时,name2,age2置空 当kind=2时,name1,age1置空 说明:数据的id1,id2相 ...
- html列表横向变纵向,word横向表格变竖向 word文档怎么把横向表格变成竖向
word文档的表格 竖向怎么变成横向 word中表格无法直接将表格变成横向的,但是可以将word的纸张变成横向. 具体操作如下: 第一步:将光标定位在有表格的那页,然后点击文件,选择页面设置: 第二步 ...
- html列表横向变纵向,手机版利用 CSS 将横向表格转换成竖向列表显示
假如一个表格有很多列,那么在手机版显示时,就不是很好查看(因为表格太宽),换一种思路,看看下面的效果: 完全不用改动 HTML,纯 CSS 即可实现,代码如下: .gridView { width:2 ...
- Mysql 横向数据表变纵向数据表
今天碰到一个有趣的题目,这真熬人啊,脑思路没写注释前,间接性宕机 n次. 如图: 看一下,是不是凭借多年(7year+)的经验,是不是很简单? 真的有那么简单吗? 是的,就是有那么简单,只是花费了我1 ...
- 给表格加上横向、纵向滚动条并对滚动条进行美化
本文demo基于vue开发,可以根据自己的框架整理,本demo满足以下几点 1.表格横向纵向都有滚动条: 2.滚动条美化: 3.固定列设置,本demo固定列举例为第一列: <template&g ...
- matlab struct结构体变量 横向和纵向数据 (1xn) 和(nx1)
clear clc close all m=10; for i=1:9 case1{i,1}=strcat('myfile',num2str(i)); % 创建结构体数据 ,分为name和d ...
- html div 横向变纵向,css怎么把纵向排列变成横向
有两种方法可以将纵向列表转变成横向列表.使用内联(inline)或浮动(float)的列表项. 这两种方法都很好,但如果你想链接到具有相同的大小,你必须使用浮动的方法. 内联列表项 建立一个横向导航栏 ...
- html5文字横向变纵向,HTML 改变文字方向
js函数前面写上分号的原因 说个之前先说,网站上传一些文件,考虑到性能问题,会用一些压缩软件来压缩代码(grunt,glup,webpack,etc..),这时候就可能出现一个问题.看下面代码 (fu ...
- html5文字横向变纵向,使用writing-mode让文字竖向排版
通常我们网页上的文字在缺省状况下是从左到右横向排版的,但有些情况下,为了排版效果,或为了更好的利用页面空间,我们需要将文字竖向排版.以前有一种很土的方法,就是让文字的容器只有一个文字的宽度,挤的文字竖 ...
最新文章
- mysql max_allowed_packet 参数 限制接受的数据包大小
- FastCGI模块(FastCGI)
- 关于SQL Server
- 【转】子网划分实例与讲解
- 【甘道夫】Hadoop2.2.0 NN HA具体配置+Client透明性试验【完整版】
- MapReduce太慢了,记一次对它的调优建议。
- oracle 运营维护_oracle运维(持续更新)
- Python打印A~Z的26个字母,你会怎样打印?
- Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
- 升级openssh版本
- oracle数据库导入表空间,oracle数据库表空间创建导入导出
- 服务器数据恢复过程(服务器数据恢复通用方法)
- 第十二章 项目采购管理第六版
- word编辑中空格变成灰点
- 图像处理(十一)高斯差分算法(边缘检测)
- 到底是加瓦好还是C好呢?
- 洛谷P1251 餐巾计划问题 无汇源最小费用流
- cmd黑客入侵命令大全
- 2020年全球及中国自动化设备发展现状及市场竞争情况分析,本土企业加速布局,未来可期「图」
- Go语言学习、结构体