echarts y轴坐标刻度取整显示

47 阅读1分钟

项目甲方验收的时候提出一个小改动,就是这个

image.png 小小改动,难不倒我, 三下五除二。

 axisLabel: {
              textStyle: {
                color: "#ACBDFC",
              },
              formatter: function (value) {
                let data = 0;
               if(value ===0){
                   data = 0;
                  } else if (value < 1000) {
                     data = 1000;
                   } else if (value < 2000) {
                     data = 2000;
                   } else if (value < 3000) {
                     data = 3000;
                   } else if (value < 4000) {
                     data = 4000;
                   } else {
                     data = 5000;
                   }
              },
            },

一分钟结束,提交代码。前端领导一看,直接打回来让优化,仔细一想确实很弱智,先不说代码长度,就说数据以后大的话,难道还一直加else ? 好吧,继续优化如下:

     axisLabel: {
              textStyle: {
                color: "#ACBDFC",
              },
              formatter: function (value) {
                let data = 0;
                if (value === 0) {
                  return 0;
                }
                const i = Math.ceil(value / 1000);
                for (let j = 0; j < i; j++) {
                  data += 1000;
                  if (value < data) {
                    return data;
                  }
                }
              },
            },

比刚才简洁多了,,,而且数据量大了也不用改代码,预览效果:

image.png 没啥毛病。