javascript - 如何降低函数的圈复杂度
问题描述
我有这个复杂度大于 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);
});
}
}```
解决方案
可能您可以使用一个对象来存储这些国家/地区值(例如字典),这样的事情应该可以完成:
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);
推荐阅读
- javascript - Boolean([]) 返回 true 为什么?
- python - 使用“with open”时文件位于何处?
- jenkins - Jenkins SSH 服务器在尝试通过 SSH 插件进行设置时显示错误算法协商失败
- python-3.x - 如何创建当前日期和时间的文件夹并在python中最近创建的文件夹中复制一些其他文件夹
- algorithm - 不限制访问次数的旅行商问题
- python - BeautifulSoup 试图从包装的 div 中获取文本,但返回的是空的或“无”
- javascript - Javascript代码将最后一个图像移动到多个图像之间的第一个图像
- java - 图遍历到达目的顶点
- r - 通过 R 编程的 STAN IRT,参数声明问题?
- reactjs - 为什么页面指南删除了滚动表格的能力?