修复循环内的圈复杂度 if/else

Fix cyclomatic complexity if/else inside loop

如果我有一个循环,里面有这样的条件,我需要一个内部变量和一个外部变量:

let b = get(b);

for(let a in myArray){
   if(a==b){
     // Do something
   }else{
     // Do another thing
   }
}

如何作为refector来降低圈复杂度。 我试图将条件提取到另一个函数中,但我想知道是否有最佳方法。

for..in 遍历对象的 属性 名称。如果你给它一个数组,它会迭代数组的索引。

var arr = ['a','b','c'];
for (let i in arr) {
  alert(i); // 0,1,2
  if (i == b) {
    // something
  }
}

所以你的代码检查器在这个循环中发现了 IF 条件并说嘿,你为什么不直接访问你正在检查的 property/index 而不是遍历每个 属性 看看是否没错。

var arr = ['a','b','c'];
if (arr[b]) {
  // something
}