Javascript 修复循环内if/else的圈复杂度
如果我有一个循环,里面有这样一个条件,我需要一个内部变量和一个外部变量:Javascript 修复循环内if/else的圈复杂度,javascript,cyclomatic-complexity,Javascript,Cyclomatic Complexity,如果我有一个循环,里面有这样一个条件,我需要一个内部变量和一个外部变量: let b = get(b); for(let a in myArray){ if(a==b){ // Do something }else{ // Do another thing } } 为了降低圈复杂度,如何使用反射镜。 我试图将条件提取到另一个函数中,但不知是否有最佳方法。for..in迭代对象的属性名。如果给它一个数组,它将迭代数组的索引 var arr = ['a','
let b = get(b);
for(let a in myArray){
if(a==b){
// Do something
}else{
// Do another thing
}
}
为了降低圈复杂度,如何使用反射镜。
我试图将条件提取到另一个函数中,但不知是否有最佳方法。for..in迭代对象的属性名。如果给它一个数组,它将迭代数组的索引
var arr = ['a','b','c'];
for (let i in arr) {
alert(i); // 0,1,2
if (i == b) {
// something
}
}
因此,您的代码检查器在这个循环中发现了IF条件,并说,嘿,为什么不直接访问您正在检查的属性/索引,而不是遍历每个属性,看看它是否正确
var arr = ['a','b','c'];
if (arr[b]) {
// something
}
for..in遍历对象的属性名称。如果给它一个数组,它将迭代数组的索引
var arr = ['a','b','c'];
for (let i in arr) {
alert(i); // 0,1,2
if (i == b) {
// something
}
}
因此,您的代码检查器在这个循环中发现了IF条件,并说,嘿,为什么不直接访问您正在检查的属性/索引,而不是遍历每个属性,看看它是否正确
var arr = ['a','b','c'];
if (arr[b]) {
// something
}
圈复杂度与其说是“固定的”,不如说是“减少的”,而且总是有最小的复杂度。我不知道如何改进,但你可以试着问圈复杂度与其说是“固定的”,不如说是“减少的”,而且总是有最小的复杂度。我不知道如何改进,但您可以试着问一个好的解决方案,如果它是一个对象数组呢?例如,对于for…of,如果要在数组中搜索值,可以使用array.indexOf查找简单元素,使用array.find/array.findIndex查找更复杂的数据。很好的解决方案,如果是对象数组呢?例如,使用for…of,如果要在数组中搜索值,可以使用array.indexOf查找简单元素,使用array.find/array.findIndex查找更复杂的数据。