想用es6方式将这两端代码简化下,请问如何实现?

问题一

多个if怎么简化

if(params.data.value[2] == 0){ //
            return 'rgba(255, 255, 255, 1)'; // 白色
        } else if(params.data.value[2] == 1){ //
            return 'rgba(255, 100, 29, 1)'; // 红色
        } else if (params.data.value[2] == 2) {
            return 'rgba(255, 202, 0, 1)'; // 黄色
        } else if (params.data.value[2] == 3) {
            return 'rgba(139, 245, 77, 1)'; // 绿色
        } else if (params.data.value[2] == 4) {
            return 'rgba(139, 245, 77, 0)'; // 绿色
        }
        return 'rgba(255, 255, 255, 0)';

问题二

我想做一个倒计时的工具,按秒走,下面这段代码就是实现这个功能的,

我想优化一下,减少代码的重复量

这段时间刷新怎么读取

componentDidMount() {

        const _self = this; // 指向本对象的指针

        var myDate = new Date();
        document.getElementsByClassName('year')[0].innerHTML = myDate.getFullYear();

        var month = myDate.getMonth()+1;
        month =(month<10 ? "0"+month:month);

        document.getElementsByClassName('month')[0].innerHTML = month; // 月份自动加0

        var day = myDate.getDate();
        day =(day<10 ? "0"+day:day);

        document.getElementsByClassName('day')[0].innerHTML = day; // 日子自动加0;

        var hour = myDate.getHours();
        hour =(hour<10 ? "0"+hour:hour);

        document.getElementsByClassName('hour')[0].innerHTML = hour; // 小时自动加0

        var minute = myDate.getMinutes();
        minute =(minute<10 ? "0"+minute:minute);

        document.getElementsByClassName('minute')[0].innerHTML = minute; //获取当前分钟数(0-59)

        _self.showTimer = setInterval(()=> this.treat(), 1000*3); // 1分钟换一次数据
    }
阅读 1.4k
1 个回答

问题一:

const colorMap = [
  'rgba(255, 255, 255, 1)',
  'rgba(255, 100, 29, 1)',
  'rgba(255, 202, 0, 1)',
  'rgba(139, 245, 77, 1)',
  'rgba(139, 245, 77, 0)',
]
return colorMap[params.data.value[2]] || 'rgba(255, 255, 255, 0)'

问题二: 没看懂?什么怎刷新? 你要做的是一个倒计时的效果吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题