首页 > 解决方案 > 如何降低函数的圈复杂度

问题描述

我有这个复杂度大于 12 的函数。我试图降低它的复杂性。我四处搜索但找不到任何有用的东西是否可以降低这种复杂性?- 如果是这样,我将如何去做?

这是功能

 function sea(name) {    +1
   if (name === 'sa') {         +1
      return 'SA';            +1
    } else if (name === 'uk') {    +1
      return 'UK';             +1
    } else if (name === 'northkorea') {   +1
      return 'NK';                 +1
    } else if (name === 'hongkong') {  +1
      return 'HK';                     +1
    } else {
      var rs = new RegExp(/\w);

      return name.replace(rs, function(up) {        +1
        return up.charAt(0);
      });
    }
  }```

标签: javascriptsonarqube

解决方案


可能您可以使用一个对象来存储这些国家/地区值(例如字典),这样的事情应该可以完成:

const countries = {
  usa: 'United-States',
  uk: 'United-Kingdom'
  // ... all other countries you want
}

function countryCaps(country) {
  if (countries[country]) {
    return countries[country];
  } else {
    // ... your regex replace function here
  }
}

const country = countryCaps('usa');

console.log(country);


推荐阅读