当echart 柱状图,两个柱子,如去年数据,今年数据,返回的数据量数量不等且后端未补0时前端如何处理数据

需要展示的效果如下图,可能是2~x个柱。后端返回的数据类似:


{

old:[

{name:"1",value:1},{name:"2",value:2},{name:"3",value:3}

],

new:[

{name:"1",value:1},{name:"3",value:3}

]

}

可以看到 new数据里面缺少了{name:"2"},如果简单得循环遍历取值填充到ecahrt的话,那么name:"3"

的值会显示在x轴刻度为2的地方,3的地方反而没有值了,按理说x轴刻度为2的地方,第二根柱子应该是0。

前端处理思路如下:JS

1.先将old new 数据里X轴都取出来拼接,然后去重,暂定为Arr;

2.命名一个新的数组对象,用Arr 去遍历生成 俩这样的数组 [{name:arr[index] ,value:0}......],暂命名AARR  BARR;

3.用AARR套原始数据old双层遍历,如果old中有name和AARR中name相同的,AARR.item.value=old.value,否则不处理 还是0;得到完整的,补0以后的AARR

4.同理:用BARR套原始数据new双层遍历,如果new中有name和BARR中name相同的,BARR.item.value=new.value,否则不处理 还是0;得到完整的,补0以后的BARR;

5.再去处理AARR  BARR 生成echart 所需要的数据。

目前能想出来的最笨的办法,有大神有好方法欢迎交流。最后贴一下代码怕自己忘了


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容