Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修复循环内if/else的圈复杂度_Javascript_Cyclomatic Complexity - Fatal编程技术网

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查找更复杂的数据。