代码优化问题,函数式编程使用循环,优化if..eles结构

1.第一个问题,利用map相加itemChild[1],觉得这样写并不好,想请求有没有更好的方法

    let data = this.state.data;
    let totalScore =  0;
    data.split('1x322EE2').map((item, index) => {
        const itemScore = item.split('1x322EE7')[1];
        totalScore += parseInt(itemScore);
    });
    

2.第二个问题,if else 判断逻辑 有没有更好的方式书写,以为了以后页面出现AAAA这种情况可以更好地添加

    let ranking = 'A';
    if(totalScore >=11 && totalScore < 15){
        ranking = 'AA';
    }else if(totalScore >= 15){
        ranking = 'AAA';
    }
阅读 1.9k
1 个回答

对于第一个问题,使用 reduce 操作符可以更加优雅:

//原方法
let data = this.state.data;
    let totalScore =  0;
    data.split('1x322EE2').map((item, index) => {
        const itemScore = item.split('1x322EE7')[1];
        totalScore += parseInt(itemScore);
    });
    
//新方法
let totalScore = data.split('1x322EE2')
                 .reduce((total, item) => total + parseInt(item.split('1x322EE7')[1]), 0);

附上 reduce 链接:Array.prototype.reduce()

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