如果循环内/其他则修正圈复杂度

时间:2018-10-24 19:38:49

标签: javascript cyclomatic-complexity

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

let b = get(b);

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

如何使用反射器来减少圈复杂度。 我试图将条件提取到另一个函数中,但是我想知道是否有最佳方法。

1 个答案:

答案 0 :(得分:2)

..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
}