Исправить цикломатическую сложность, если / иначе внутри цикла - PullRequest
0 голосов
/ 24 октября 2018

Если у меня есть цикл с таким условием внутри, где мне нужна внутренняя и внешняя переменная:

let b = get(b);

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

Каким образом можно использовать рефлектор для уменьшения цикломатической сложности.Я пытался извлечь условие в другую функцию, но мне интересно, есть ли лучший подход.

1 Ответ

0 голосов
/ 24 октября 2018

for..in перебирает имена свойств объекта.Если вы дадите ему массив, он будет перебирать индексы массива.

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

Итак, ваша программа проверки кода обнаруживает условие IF в этом цикле и говорит HEY, почему бы вам не получить прямой доступ к свойству /Индекс, который вы проверяете, вместо того, чтобы просматривать каждое свойство, проверяя, является ли оно правильным.

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