在php对接echarts生成24小时数据时,发现某些时段在数据库中是不存在的,这样就导致前端Echarts的X轴会出现时间段的跳跃。 如后台生成的数据JSON如下:
var arr = [
{
"dataKey": "00",
"totalTrans": "4",
"totalPays": "301.70"
},
{
"dataKey": "01",
"totalTrans": "1",
"totalPays": "39.90"
},
{
"dataKey": "03",
"totalTrans": "2",
"totalPays": "35.80"
},
{
"dataKey": "05",
"totalTrans": "3",
"totalPays": "80.80"
},
{
"dataKey": "06",
"totalTrans": "9",
"totalPays": "423.90"
},
{
"dataKey": "07",
"totalTrans": "38",
"totalPays": "1925.69"
},
{
"dataKey": "08",
"totalTrans": "91",
"totalPays": "4324.88"
},
{
"dataKey": "09",
"totalTrans": "119",
"totalPays": "6423.51"
},
{
"dataKey": "10",
"totalTrans": "128",
"totalPays": "9273.93"
},
{
"dataKey": "11",
"totalTrans": "123",
"totalPays": "6563.52"
},
{
"dataKey": "12",
"totalTrans": "81",
"totalPays": "4116.21"
},
{
"dataKey": "13",
"totalTrans": "58",
"totalPays": "2704.50"
},
{
"dataKey": "14",
"totalTrans": "77",
"totalPays": "6561.20"
},
{
"dataKey": "15",
"totalTrans": "27",
"totalPays": "1252.20"
}
];
02时间,04时间…都是空值,需要如何处理呢?
24小时完整时间点按照数据格式,在JS钟,提前做好24小时默认数据。
//24小时默认数据,补齐缺失数据;
var timeData = [
{"dataKey": '00', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '01', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '02', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '03', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '04', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '05', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '06', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '07', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '08', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '09', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '10', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '11', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '12', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '13', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '14', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '15', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '16', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '17', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '18', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '19', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '20', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '21', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '22', "totalTrans": "0", "totalPays": "0"},
{"dataKey": '23', "totalTrans": "0", "totalPays": "0"}
];
合并两个对象数组
//合并数据成为新的数组;
var arr2 = timeData.concat(arr);
结果如下:
直接合并的数据,存在大量的重复值,不是目标数据,需要对数据按照dataKey进行合并,其他字段相加。
//定义新的对象和数据;
var map = {}, dest1 = [], dest2 = [];
//执行函数合并;
getNewArr(arr2, dest1);
console.log(dest1);
//对象数组,同键值合并函数;
function getNewArr(arr, dest) {
for (var i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?